Suchformularabfragen

EifelFrosch

Mitglied
Hallo,

ich habe folgendes Problem:

Ich möchte eine Suchanfrage auf einer mySQL Datenbank mit PHP ausführen.
Es gibt 6 Suchbegriffe, die man eingeben KANN, aber nicht MUSS. Man soll z.B. nach Eigentümer suchen, aber alle anderen freilassen können. Oder man gibt die ID und die Größe ein und er gibt genau passenden Datensätze.
Ich könnte jetzt hingehen und jeden Fall abfragen (wenn Feld 1,2 und 3 ausgefüllt sind, dann mache nur eine Abfrage über diese Felder oder wenn Feld 3 und 4 ausgefüllt sind nur über Feld 3 und 4). Das wäre aber ein großer Aufwand, da in Zukunft die Suchabfrage vielleicht noch mehr Attribute bekommen soll.

Bei "und" oder "oder"-Abfragen gibt Fehlermeldungen, wenn ich ein Feld frei lasse

Gibt es da bestimmt einen einfachen Weg, die passenden Daten aus der Datenbank abzurufen?!

Vielen Dank
EF
 
PHP:
$sql = "SELECT blabla WHERE 1";
if($id) $sql .= " AND id=$id";
if($searchfield) $sql .= " AND searchfield=$searchfield";
 
Hallo,

vielen Dank, aber ich hab noch ne Frage dazu (bin sehr ungeübt in PHP):

$sql = "SELECT blabla WHERE 1"; <= wieso die 1 ?

Die Lösung gibt zwar keine Fehlermeldung aus, aber er findet immer 0 Datensätze, auch wenn ich z.b. ID=1 einsetze.

Grüße
EF
 
Zuletzt bearbeitet:
Die Bedingung
Code:
WHERE 1
ist immer wahr. Somit muss erst nicht überpüft werden, ob schon eine Bedingung vorhanden ist und erst noch das
Code:
WHERE
bzw. das
Code:
AND
angehangen werden muss.
 
danke :-)

Hab das jetzt so gemachr:

$sqlab = "select * from daten where 1";
if($id) $sqlab .= " and id=$id"; //wenn ID belegt ist, wird das Feld mit aufgenommen
if('$eigentuemer') $sqlab .= " and eigentuemer = '$eigentuemer'";
if('$gemarkung') $sqlab .= " and gemarkung = '$gemarkung'";
if($groesse_ha) $sqlab .= " and groesse_ha = $groesse_ha";

Bis einschließlich eigentuemer klappts wunderbar, füge ich gemarkung/groesse_ha hinzu, findet er immer 0 Datensätze.


Gruß
EF
 
Zurück