Pulldown Menü selected auf Wert aus MySQL Tabelle

dekker

Grünschnabel
Hallo
ich habe ein kleinen Problem finde aber keine Lösung also ich habe ein Pulldown Menü dieses liest die Werte aus einer MySQL Tabelle aus und soll einen mit einer bestimmten ID auswählen. Am Ende soll ich den Wert im Pulldown dann auch verändern können und unter einem anderen Wert speichern können.
Die Werte aus der SQL-Tabelle stehen als $zeile['nummer'] bereit.

echo"<tr><td>" ."Bitte Genre wählen"." </td>" ;
echo "<td></td><td><select name='kategorie' value='2'>";


$strSQL2="select kategorie.kid,kategorie.genre from kategorie;";
$Erg2=mysql_query($strSQL2);
while ($zeile2=mysql_fetch_row($Erg2))
{
echo "<option . value=\" $zeile2[0]\" selected> \"$zeile2[1]\"</option>";
}
echo "</select></td></tr>";

ich hab es auch schon probiert den Wert $zeile2[0]=$variable zu setzten und diesen dann durch eine if else Schleife laufen zu lassen aber hat nicht funktioniert.


Gruß Dekker
 
Zuletzt bearbeitet:
So wie ich das sehe hast du gleich mehrere Fehler in dein Script eingebaut :) Deine genaues Problem hab ich auch nicht wirklich verstanden, gehe aber davon aus, dass du in dem Select-Feld den aktuell markierten/gewählten Eintrag aus der Datenbank auch im Select-Feld durch " selected" markieren möchtest. In dem Fall muss bekannt sein, welcher Eintrag der markierte ist, im unten stehenden Beispiel wird der gewählte Eintrag per $_POST[ 'selected_id' ] übergeben.
PHP:
$sql = "SELECT kid, genre FROM kategorie";
$result = mysql_query( $sql );

echo '<select name="form_select">';
while( $zeile = mysql_fetch_assoc( $result ) )
{
    // Prüfen, ob das der markierte ist
    if( $zeile[ 'kid' ] == $_POST[ 'selected_id' ] )
    {
        $selected = ' selected';
    }
    // Zeile ausgeben
    echo '<option value="' . $zeile[ 'kid' ] . '"' . $selected . '>' . $zeile[ 'genre' ] . '</option>';
}
echo '</select>';
Es wird also überprüft, ob der übergebene Wert "selected_id" gleich ist wie ein Eintrag aus der Datenbank, so wird der Variable "$selected" auf " selected" (wichtig ist das Leerzeichen am Anfang des Strings) gesetzt. Aber eben nur dann, ansonsten hat die Variable keinen Wert. Danach wird dann der Teil der While-Schleife ausgegeben.

Ich würde dir aber in jedem Fall noch empfehlen dir die HTML-Referenz zu Formular-Elementen nochmal genau anzusehen :)
 
Hi
danke das hab ich gesucht wir haben uns zwar wirklich nicht ganz verstanden aber über den Lösungsansatz hab ich es hinbekommen.


Danke


Gruß Dekker
 
Zurück