Dropdown PHP alle auswählen

tom9999

Grünschnabel
Verzweifelt, in mehreren Foren schon gefragt, niemand hat eine Antwort. Vielleicht hier?
Ich habe folgendes, womit man Farben auswählen kann, die aus einer Tabelle vom Server geholt werden. Es klappt auch alles, nur: Wie macht man es, dass alle Farben ausgewählt werden. Also nicht rot oder blau, sondern ein option value mit "-----------">bitte wählen.....und wenn man dieses dann auswählt, werden eben ALLE Farben aus der Tabelle ausgegeben. Ich habe schon die Hoffnung aufgegeben, dass das jemand weiß. Beispiel siehe: http://www.mobile.de Wenn man hier z.B. bei Marke keine bestimmte marke angibt, werden alle Marken angezeigt.

<tr>
<td align=right>Farbe:</td>
<select name="Farbe" size="1">
<option value="--------">bitte wählen
<option value="rot">rot
<option value="blau">blau
<option value="gelb">gelb

<?php

$result = mysql_query("SELECT Farbe FROM Cars");
while ($a_row =mysql_fetch_array ($result) )
{
echo $a_row->Farbe;
}
?>
</select>
 
Also entweder du machst es via JS, dass du beim Absenden des Forms schaust, ob das "Alle"-Feld ausgewählt wurde, wenn ja seztt du dies inaktiv und alle anderen aktiv, aber wesentlich sinnvoller, du übergibst irgendeinen Wert für alle, beispielsweise nix oder -1 oder so.
Im Script selbst kannst du dann einfach das Kritikerium im WHERE weglassen, da es ja nicht mehr relevant ist.

Oder wie meinst du das ganze?
 
Hallo, Danke einmal für die Antwort. Aber wie genau mache ich das nun, dass alle ausgewählt werden, wenn ich dafür einen Wert definiere. Mit einer weiteren while Schleife und eine Variable $select=="showall" definieren? Hab ich auch schon probiert, geht nicht. Ich bin ja noch Anfänger ;-) Wie genau sollte das dann lauten?
 
Wozu denn eine Schleife?
Du willst ja durch Auswählen der farbe die SQL-Suche einschränken, ergo musst du den Wert der Farbe im WHERE einbinden.
Für den Fall das alle Farben selektiert werden sollen, kann dies im WHERE wegfallen.
Beispeil für den Fall das "Alle auswählen" die Value -1 entält:

PHP:
//Wenn Farbe ausgewählt wurde
if( $_POST['farbe'] != -1 )
      $where = " WHERE farbe = '$_POST[farbe]'";

//Wenn alle asuegwählt wurde wird kei nWHERE erzeugt.

$sth = @mysql_query('SELECT * FROM cars '.$where) or die('Fehler: '.mysql_error());
while( $data = mysql_fetch_object($sth) )
{
  // ...
}
 
Zurück