Gutn Tag
Ich habe ein Abfrageformular mit mehreren <select> Kästchen.
Als Beispiel die Haarfarbe:
PHP-Code:
<select size="1" name="haare">
<option value="--"<?php echo ($haare == "--") ? " selected" : "" ?>>--</option>
<option value="schwarz"<?php echo ($haare == "schwarz") ? " selected" : "" ?>>schwarz</option>
<option value="dunkelbraun"<?php echo ($haare == "dunkelbraun") ? " selected" : "" ?>>dunkelbraun</option>
<option value="braun"<?php echo ($haare == "braun") ? " selected" : "" ?>>braun</option>
<option value="hellbraun"<?php echo ($haare == "hellbraun") ? " selected" : "" ?>>hellbraun</option>
<option value="dunkelblond"<?php echo ($haare == "dunkelblond") ? " selected" : "" ?>>dunkelblond</option>
<option value="blond"<?php echo ($haare == "blond") ? " selected" : "" ?>>blond</option>
<option value="hellblond"<?php echo ($haare == "hellblond") ? " selected" : "" ?>>hellblond</option>
<option value="rot"<?php echo ($haare == "rot") ? " selected" : "" ?>>rot</option>
<option value="grau"<?php echo ($haare == "grau") ? " selected" : "" ?>>grau</option>
</select>
In der DB sind die Werte gespeichert, in der Spalte "haare" als varchar(20) mit einem der oben vorhandenen Werte.
Nun möchte ich aus der DB etwa folgendes selektieren:
PHP-Code:
if ($haare == "--") {$haare_n = "";};
if ($haare == "schwarz") {$haare_n = " AND haare ='schwarz' OR haare ='dunkelbraun'";};
if ($haare == "dunkelbraun"){$haare_n = " AND haare ='schwarz' OR haare ='dunkelbraun' OR haare ='braun'";};
if ($haare == "braun") {$haare_n = " AND haare ='dunkelbraun' OR haare ='braun' OR haare ='hellbraun'";};
if ($haare == "hellbraun") {$haare_n = " AND haare ='braun' OR haare ='hellbraun' OR haare ='dunkelblond'";};
if ($haare == "dunkelblond"){$haare_n = " AND haare ='hellbraun' OR haare ='dunkelblond' OR haare ='blond'";};
if ($haare == "blond") {$haare_n = " AND haare ='dunkelblond' OR haare ='blond' OR haare ='hellblond'";};
if ($haare == "hellblond") {$haare_n = " AND haare ='blond' OR haare ='hellblond'";};
if ($haare == "rot") {$haare_n = " AND haare ='rot'";};
if ($haare == "grau") {$haare_n = " AND haare ='grau'";};
Nur, so geht es nicht! Durch die OR - Verknüpfung wird die vorherige Selektion durch andere Felder ausgeschaltet, wenn der Teil nach OR erfüllt ist.
Wie muss ich die Abfrage richtig schreiben?
Beispiel unter:
http://modelpage.ch/suchen-D.php