Mailinglisten-Archive |
Hallo Martin, Am Samstag, 10. Januar 2004 20:04 schrieb binabik [freesurf.ch] > hallo zusammen! > > > ich habe ein kleines problem und zwar möchte ich zwei select menüs > erstellen, welche aus einer mysql datenbank herausgelesen werden. > dabei soll die ausgabe des zweitens menüs davon abhängig sein, welche > auswahl beim ersten select menü getroffen wurde. > ich habe sowas mit der gleichen Abhängigkeit auch schon mal programmiert. Vielleicht hilft Dir mein Quellcode etwas weiter. In diesem Beispiel stehen die Daten in einer Tabelle Namens Produkte und die Felder heißen Name und Modell. Mfg Carsten test.php: <?php $Hersteller = $_GET['Hersteller']; $Modell = $_GET['Modell']; /* Verbindung öffnen und Datenbank auswählen */ if (!($connection = @mysql_connect(***, ***, ***))) die("Error " . mysql_errno() . " : " . mysql_error()); if (!(mysql_select_db("***", $connection))) die("Error " . mysql_errno() . " : " . mysql_error()); /* Erste Wertetabelle lesen z.B. Hersteller */ $liste1query = "SELECT DISTINCT Name FROM Produkte ORDER BY Name"; $liste1 = mysql_query($liste1query, $connection); $anzliste1 = mysql_num_rows($liste1); /* Die zweite Wertetabelle wird nur gelesen, wenn aus Wertetabelle 1 etwas ausgewählt wurde. */ if ($Hersteller != "") { $liste2query = "SELECT DISTINCT Modell FROM Produkte WHERE Name = \"" . $Hersteller . "\""; $liste2 = mysql_query($liste2query, $connection); $anzliste2 = mysql_num_rows($liste2); } ?> <form action=test.php method=GET > Hersteller auswählen: <select name="Hersteller" size="1"> <?php for ($i=0; $i<$anzliste1; $i=$i+1) { $wert1 = mysql_result($liste1, $i, "Name"); if ($wert1 == $Hersteller) { echo " <option selected value=\"" . $wert1 . "\">" . $wert1 . "</option>\n"; } else { echo " <option value=\"" . $wert1 . "\">" . $wert1 . "</option>\n"; } } echo " </select><br><br>"; /* Das nächste Dropdownmenue wird nur angezeigt, wenn bereits ein Hersteller ausgewählt wurde. */ if ($Hersteller != "" ) { echo "Modell auswählen:"; echo "<select name=\"Modell\" size=\"1\">"; for ($i=0; $i<$anzliste2; $i=$i+1) { $wert2 = mysql_result($liste2, $i, "Modell"); if ($wert2 == $Modell) { echo " <option selected value=\"" . $wert2 . "\">" . $wert2 . "</option>"; } else { echo $itemfmt . " <option value=\"" . $wert2 . "\">" . $wert2 . "</option>"; } } echo "</select><br><br>"; } ?> <input type="submit" value="Suchen"> </form>
php::bar PHP Wiki - Listenarchive