PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   SELECT option value (http://www.selfphp.de/forum/showthread.php?t=7783)

Jürg 24.05.2004 14:38:50

SELECT option value
 
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

Marilu 24.05.2004 14:45:15

Versuchs mal mit CASE.

Eventuell mußt Du den AND ... OR - Teil in Klammern setzen.

Jürg 24.05.2004 15:26:48

Vielen Dank, das geht!
PHP-Code:

if ($haare == "dunkelbraun") {$haare_n " AND ( haare ='schwarz' OR haare ='dunkelbraun' OR haare ='braun' )";}; 



Alle Zeitangaben in WEZ +2. Es ist jetzt 23:44:07 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.