Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Zoekquery in phpmaker

Pagina: 1
Acties:
  • 542 views sinds 30-01-2008
  • Reageer

  • Wooldoor
  • Registratie: Mei 2007
  • Laatst online: 30-10-2021
Mischien zijn er hier mensen die met het programma phpmaker 5.0 hebben gewerkt, zo niet mischien weten jullie het dan alsnog :P

Ik een grid gegenereerd met een aantal zoekvelden en een zoekveld daarvoor heet subsidie.
Nu heb ik in mijn database de velden subsidie1, subsidie2 ,subsidie3 ,subsidie4 ,subsidie5.

Als ik ga zoeken met phpmaker 5 naar subsidie zoekt hij automatisch alleen in subsidie1. In het programma zelf is het naar mijn weten niet mogelijk om te zoeken naar de andere subsidie velden.
Dit terwijl het eigenlijk een simpele query is in de vorm van:

SELECT .......
WHERE velda like '%bad%'
OR veldb like '%bad%'
OR veldc like '%bad%'

Alleen nu is de code dusdanig opgebouwd dat ik het niet meer kan lezen.
Het gaat waarschijnlijk om het volgende stuk:

// Return Advanced Search Where based on QueryString parameters

// Field subsidie1
BuildSearchSql($sWhere, $klanten->subsidie1, @$_GET["x_subsidie1"], @$_GET["z_subsidie1"], @$_GET["v_subsidie1"], @$_GET["y_subsidie1"], @$_GET["w_subsidie1"]);

http://eu.battle.net/d3/en/profile/Wimploo-1839/hero/2913117


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20-11 22:59

Janoz

Moderator Devschuur®

!litemod

Nummering in de kolommen betekend een brak database design. Daar is waar je probleem zit dus probeer het daar ook op te lossen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Wooldoor
  • Registratie: Mei 2007
  • Laatst online: 30-10-2021
Ok laten we zeggen ik maar van subsidie 1t/m 5 subside A t/mE dan blijft de vraag nog hetzelfde :P

http://eu.battle.net/d3/en/profile/Wimploo-1839/hero/2913117


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20-11 22:35

Creepy

Tactical Espionage Splatterer

En blijft de opmerking van Janoz ook hetzelfde :P
Je wilt in dit geval geen herhalende velden in je database hebben, dat is het eerste wat je aanpast zodra je je zaken gaat normaliseren. Als je dat hebt gedaan dan zijn in dit geval je queries ook ineens een stuk makkelijker en leesbaarder en kan je ook makkelijk zoeken met phpmaker.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Dennahz
  • Registratie: November 2001
  • Laatst online: 20-11 22:26

Dennahz

Life feels like hell should.

Je kan je inderdaad beter verdiepen in een goed database design. Dit is echt geen werken zo... stel dat er nog meer subsidies bijkomen ga je dan telkens nieuwe tabellen maken? Dat is ook niet te onderhouden op die manier... nu is het 'makkelijk' maar later zit je op elke pagina query's aan te passen etc.

Twitter


  • Wooldoor
  • Registratie: Mei 2007
  • Laatst online: 30-10-2021
ok mischien is het zo duidelijker :P

Dit is mijn tabel:

Klant
------------------
Subsidie1 varchar(50)
Subsidie2 varchar(50)
Subsidie3 varchar(50)
Subsidie4 varchar(50)
Subsidie5 varchar(50)


Dit is de index.php met het enige zoekveld:

Subsidie = <dropdownlistbox>

Nieuwe situatie:

Ik wil zoeken met het enige subsidie zoekveld naar alle 5 subsidie velden.
Dus als de inhoud van subsidie1 blaat is en die van subsidie2 is ook blaat en die van 3,4,5 zijn top
dan wil ik als ik zoek op blaat 2 resultaten krijgen.

Nu krijg ik maar 1 resultaat en dat is die van subsidie1

http://eu.battle.net/d3/en/profile/Wimploo-1839/hero/2913117


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

En nu verwacht je dus van ons dat wij weten wat voor SQL die vage BuildSearchSql($veelteveelparameters) produceert en hoe je daar ietsin kan hacken?

Zou je niet beter gewoon zelf een goeie searchquery schrijven? zo moeilijk is dat niet namelijk

Stop uploading passwords to Github!


  • Sh4wn
  • Registratie: December 2006
  • Laatst online: 12-11-2017

Sh4wn

Bio-informatica

Uberhaupt gebruik maken van Code Generation progjes is ronduit bagger :')

Het werkt in alle gevallen beter als je het gewoon zelf doet.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20-11 22:35

Creepy

Tactical Espionage Splatterer

Het is al duidelijk wat je wilt hoor ;)

Maaruh, pas de index.php aan zodat ie een query genereert zoals jij hem wilt hebben? Lijkt me een kleine moeite. (maar nog steeds heb je een bagger datamodel waardoor je zo'n suffe query moet fixen, ik hoop dat je je dat wel beseft)

[ Voor 7% gewijzigd door Creepy op 14-01-2008 15:56 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Wooldoor
  • Registratie: Mei 2007
  • Laatst online: 30-10-2021
Ik weet dat jullie een code generator crap vinden maar het werkt prima voor wat ik ermee doe en waar het voor moet dienen. Beter dan ik zelf had kunnen kloppen (nu is dat ook bar weinig :P)

Maar in ieder geval bedankt.

http://eu.battle.net/d3/en/profile/Wimploo-1839/hero/2913117


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20-11 22:59

Janoz

Moderator Devschuur®

!litemod

We hebben hier helemaal niks tegen codegeneratoren. Deze worden heel veel gebruikt. Je probleem hier heeft ook helemaal niks met de code generator te maken. Wat iedereen je hier probeert uit te leggen is dat je probleem ligt in je database model. Wat je hier omschrijft is een typische 1 op N relatie. Dit sla je op in twee verschillende tabellen waarbij je in de subsidie tabel een referentie naar de klant tabel opneemt. Doe je dit dan kan er keurige en goede code gegenereerd worden.

Leuk leesvoer : http://en.wikipedia.org/wiki/Database_normalization

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Janoz schreef op maandag 14 januari 2008 @ 21:45:
We hebben hier helemaal niks tegen codegeneratoren. Deze worden heel veel gebruikt.
offtopic:
Het gebruik van de shut-up operator (@) is vaak niet echt mooi, want meestal kan je eerst elegantere checks uitvoeren. Deze code generator zet 5 shut-ups in 1 statement en dat heeft een mens nog nooit gepresteerd. :P Je eigen debug mogelijkheden om zeep helpen of fouten onderdrukken is toch wel iets waar je later heel erg van kan gaan balen. Maar goed, zolang je deze tool vertrouwt (kan vertrouwen), is het datamodel het grootste probleem.

{signature}


Verwijderd

Ik ben niet echt goed in maar wat ik met database design heb geleerd is volgende. Met de code wat jij hebt ingevoerd kan je alleen in je database het woord die voorkomt vinden '%Bad%'

:) Dat is wat ik van weet

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Wat LIKE doet is het probleem van de TS niet, en je legt het bovendien verkeerd uit. :>
'%' is een wildcard character voor 0 of meerdere willekeurige tekens. ;)

{signature}

Pagina: 1