Ich lese auf der Seite index.php aus meiner Datenbank mit
alle Kunden aus. Nun bekomme ich aber eine sehr große Anzahl an Kunden geliefert. Ich möchte also mit einem Optionsformular die Suche eingrenzen können:
Wird der Filter angewendet, soll auch mein SQL-Query angepasst werden (In der Datenbank ist in der jeweiligen Spalte entweder eine 0 oder eine 1 hinterlegt):
.
Wie kann ich das am elegantesten bewerkstelligen? Denn wenn beispielsweise keine Option ausgewählt und der Filtern-Button geklickt wird, wird ja in dem soeben angebenen SQL-Query ein Leerwert übergeben. Es gibt einen "Absturz". Hier kann ich natürlich ersteinmal Leerwerte herausfiltern und durch eine 0 ersetzen. Ein weiteres Problem ist dann aber, dass wenn keine Option ausgewählt wurde, ja alle Werte aus der Datenbank geholt werden sollen (also sowohl die mit einer 0, als auch mit einer 1) und nicht nur die mit einer 0.
Ich würde gerne direkt von Anfang an sauber vorgehen, damit man die Optionen später mit möglichst geringem Aufwand erweitern kann. Habt ihr ein paar Tipps für mich?
Code:
SELECT * FROM kunden
Code:
<form action="index.php" method="post"> <p>Wählen Sie eine oder mehrere Filter aus:</p> <p><input type="checkbox" name="vip_kunde" value="1">Kunde ist VIP-Kunde<br> <input type="checkbox" name="querulant" value="1">Kunde ist ein Querulant<br> <input type="checkbox" name="nichtzahler" value="1">Kunde schuldet uns Geld<br> <input type="submit" value="Filtern"/> </p>
Code:
SELECT * FROM kunden WHERE vip = $_POST['vip_kunde'] AND querulant = $_POST['querulant'] AND nichtzahler = $_POST['nichtzahler']
Wie kann ich das am elegantesten bewerkstelligen? Denn wenn beispielsweise keine Option ausgewählt und der Filtern-Button geklickt wird, wird ja in dem soeben angebenen SQL-Query ein Leerwert übergeben. Es gibt einen "Absturz". Hier kann ich natürlich ersteinmal Leerwerte herausfiltern und durch eine 0 ersetzen. Ein weiteres Problem ist dann aber, dass wenn keine Option ausgewählt wurde, ja alle Werte aus der Datenbank geholt werden sollen (also sowohl die mit einer 0, als auch mit einer 1) und nicht nur die mit einer 0.
Ich würde gerne direkt von Anfang an sauber vorgehen, damit man die Optionen später mit möglichst geringem Aufwand erweitern kann. Habt ihr ein paar Tipps für mich?
Kommentar