Hi Frank,
also: Wenn ich richtig kombiniere wirft also
SELECT name FROM foo WHERE name = „%“
alle Einträge als Ergebnis aus. Genau so hätte ich es nämlich
Nein.
SELECT name FROM foo WHERE name LIKE „%“
= Testet immer auf Gleichheit, nur mit LIKE funktionieren Platzhalter.
gerne. In der realen Suchmaske kann ich dann die Variable
$bundesland als % definieren, falls dieses nicht ausgewählt
wurde, und somit eine Bundesweite Suche ermöglichen. Dabei
bleibt der Quellcode der Zieldatei unverändert: Durch „SELECT
* FROM foo WHERE land = ‚$land‘ AND bundesland = ‚%‘“ wird
dann das Bundesland sozusagen ignoriert und alle Einträge
aufgelistet, in denen land = ‚$land‘ ist.
Naja, entweder statt = LIKE verwenden, oder aber dynamisch zusammenbauen, ich mache das immer mit:
$sql = "SELECT foo FROM bar WHERE 1 ";
if ($\_POST["a"]) $sql .= "AND a='$\_POST[a]' ";
if ($\_POST["b"]) $sql .= "AND a='$\_POST[b]' ";
…das sollte etwas schneller gehen in der Abfrage als mit vielen
LIKE „%“.
Alexander