Hi,
wenn ich eine DB-Abfrage mache und die Ausgabe auf bestimmte Felder beschränken möchte, mache ich das ja mittels WHERE.
sprintf("SELECT feld_x FROM table WHERE feld_x = '%s' AND feld_y = '%s'") ... ;
Wie mache ich das aber nun, wenn ich je nach Auswahl des Benutzers (per Formular) verschiedene Felder wählen will? D.h. der eine Benutzer will Daten von feld_x, der andere von feld_x und feld_y, ein dritter nur von feld_y usw. Dann muss ich ja individuell bei WHERE die Felder aufführen.
Wie funktioniert das?
Ich kann ja kaum mittels if prüfen, ob feld_x oder feld_y oder feld_x und feld_y gewählt wurden, und je nachdem unterschiedliche Select-Abfragen durchführen.
Also sowas:
if($_POST['feld_x'] == "ok" && $_POST['feld_y'] != "ok")
{
"SELECT feld_x FROM table WHERE feld_x = '%s'";
}
elseif($_POST['feld_x'] != "ok" && $_POST['feld_y'] == "ok")
{
"SELECT feld_x FROM table WHERE feld_y = '%s'";
}
elseif($_POST['feld_x'] == "ok" && $_POST['feld_y'] == "ok")
{
"SELECT feld_x FROM table WHERE feld_x = '%s' AND feld_y = '%s'";
}
Bei zwei Feldern mag das ja noch gehen - aber bei mehreren wird das doch arg lang und unübersichtlich. Da gibts ja immer 2^Feldanzahl Optionen.