SQL Abfrage in php mit mehreren Abfrageoptionen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Savage-smoker
Mitglied
Beiträge: 2
Registriert: 06.11.2006 14:19

SQL Abfrage in php mit mehreren Abfrageoptionen

Beitrag von Savage-smoker »

Hallo,

ich hoffe ist hier der richtige Platz für die Frage.
Mein Problem:
Ich möchte meine Datenbank nach mehreren sachen abfragen, wo ich per optionsfeld jeweils die suchmöglichkeiten vorgebe (wie zum Beispielbei Autoscout24.de)
habe in meinem Fall jetzt zur Zeit nur 2 Suchpotionen (Bundesland,Geschlecht)und das nur von Usern die aktiviert sind.
Habes erstmal alles in eine Suchanfrage gesteckt also :

Code: Alles auswählen

"SELECT * FROM user WHERE aktiv=1 AND regionid like '%".$regionid."%' AND geschlbin like '%".$geschlbin."%' "
Möchte aber noch meh sachen zum Auswählen vorgeben, aber auch so, daß wenn der User eine sache nicht auswählt das diese dann sozusagen icht brücksichtigt wird und nur die sachen gesucht werden die er auch selektiert.
Also er will zum Beispiel nur User sehen die weiblich sind das Bundesland ist ihm egal.
jetzt habe ich es so gemacht das ich alleBundesländer 001-016 vergeben haben und wenn er sozusagen alle Bundesländer auswählt das dann für die suche like "0" eingesetzt wird weil ja die 0 so in allen vorkommt geht ist aber wie ich finde kein saubere Lösung.
Möchte auch gerne noch die Optionen des Alters dazumachen aber wie.Der User soll frei wählen können halt von 20-30 Jahre also mit zwei Feldern einmal startalter und das maxalter, in eine richtung wäre mir klar mit < oder > und dann die Zahl.
aber wie wenn beide zusammen sein sollen also alles dazwischen genommen werden soll.
Vieleicht hat ja jemand von euch so ein Script fertig wo ich halt die Datenbankbezeichnungen ändern müßte und die entsprechnden Kategorien.
Hoffe es war einigermaßen verständlich.
Schonmal Danke im vorraus.
Mannlernt ja am besten von anderen scripten aber diese Datenbankabfragen findet man ja auf den seiten nicht also die Quelltexte.

Mit freundlichen Grüßen
Savage
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: SQL Abfrage in php mit mehreren Abfrageoptionen

Beitrag von gn#36 »

Code: Alles auswählen

$sql = "SELECT * FROM user WHERE aktiv=1 AND (regionid like '%".$regionid."%' OR  $regionid = 0) AND (geschlbin like '%".$geschlbin."%' OR  $geschlbin = 0)"
Wie wäre es denn mit einem OR :) Wenn die Variable =0 ist dann ist die Abfrage wahr und die andere Abfrage zur Variable wird "überschrieben", die Klammerung verhindert eine fehlerhafte Beziehung...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Ich würde vorschlagen, die Abfrage mittels einer Batterie entsprechender IFs "zusammenzubauen" um sie dann am Ende immer nur so abzuschicken, dass sie die Elemente enthält, die der User tatsächlich abfragen will.
Dazu gibt es im phpBB-Quellcode durchaus auch einige Beispiele zu finden :wink:

Wie das in deinem konkreten Fall genau auszusehen hat, kann ich jetzt aber nicht an einem Beispiel zeigen.

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Savage-smoker
Mitglied
Beiträge: 2
Registriert: 06.11.2006 14:19

Beitrag von Savage-smoker »

erstmal Danke schon über so schnelle Antworten.

Genau mit den if sachen würd ich es gern machen wollen.
Was muß ich denn hier als suchwort dafür eingeben um mich drüber anzulesen, denn mit den if's kenn ich mich noch nicht aus?

Danke
Antworten

Zurück zu „Coding & Technik“