komplexere suche
philippo
- php
Hallo
ich habe ein Problem. Und zwar möchte ich eine komplexere Suche erstellen. Aus einer DB lese ich name,stadt,bundesland,branche aus. nun möchte ich über drei Suchfelder das rihcitge Ergebniss finden. Sorich wenn ich die stadt weglasse, und branche einbene, bzw ein bundesland soll das genau so gehen, als wenn ich nur die stadt angegebe. leider finde ich kein denkansatz...
gruß
philippo
Hello,
ich habe ein Problem. Und zwar möchte ich eine komplexere Suche erstellen. Aus einer DB lese ich name,stadt,bundesland,branche aus. nun möchte ich über drei Suchfelder das rihcitge Ergebniss finden. Sorich wenn ich die stadt weglasse, und branche einbene, bzw ein bundesland soll das genau so gehen, als wenn ich nur die stadt angegebe. leider finde ich kein denkansatz...
Die Lösung heißt
Optionen und Alternativen
Aufbau eines Grids mit den Abfragemöglichkeiten
Dazu gibt es hier schon mal irgendwo einen 'Denkansatz' im Archiv.
Wichtig ist bei solchen 'Abfragemaschinen' immer, dass keinerlei Werte direkt
aus dem Client-Request entnommen werden, sondern der Server immer prüft, ob
der Request so erlaubt ist.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
Aus einer DB lese ich name,stadt,bundesland,branche aus. nun möchte ich über drei Suchfelder das rihcitge Ergebniss finden. Sorich wenn ich die stadt weglasse, und branche einbene, bzw ein bundesland soll das genau so gehen, als wenn ich nur die stadt angegebe.
nimm nur für die felder eine bedingung mit in die WHERE-klausel auf, für die auch ein suchbegriff angegeben wurde.
gruß,
wahsaga
Hello,
nimm nur für die felder eine bedingung mit in die WHERE-klausel auf, für die auch ein suchbegriff angegeben wurde.
Dann kann man aber z.B. nicht nach allen Datsnsätzen suchen, die keine Postleitzahl enthalten.
Wichtig ist ja auch, ob die Abfragebedingungen mit UND oder ODER verknüpft werden sollen und wie diese geklammert werden sollen und ob z.B. auch nach 'LIKE %$wert%' gesucht werden soll
WHERE $feld LIKE '%$wert%' enthält
WHERE $feld LIKE '%$wert' endet mit mit
WHERE $feld LIKE '$wert%' beginnt mit
WHERE $feld = '$wert%' gleich (Groß-/Kleinschreibung missachtet)
WHERE BINARY $feld = '$wert%' genau gleich
Und nicht vergessen, $wert vorher zu escapen!
Anmerkung:
select * from ADRESSE where VORNAME = BINARY 'HANS'; geht aber auch. Nun bin ich überfragt, ob das Attribut 'BINARY' vor dem Spaltennamen oder vor dem Vergleichswert stehen muss.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom