problem: Dropdown aus datenbank und Vorauswahl

loc_ju

Mitglied
Hallo, hab n kleines Problem.
Ich lass aus ner DB in ein Dropdown feld automatisch Werte eintragen, das klappt auch, das Speichern in die DB klappt auch, nur wenn ich jetzt einen vorhandenen Datensatz bearbeiten will zeigt es nicht den richtigen Datensatz an, sondern den ersten oder letzten Datensatz. Ich bekomm es einfach nicht hin, dass es den richtigen Datensatz Selected.
PHP:
<?php 
    $sql3 = 'SELECT * FROM user ORDER BY nachname ASC;'; 
    $result3 = mysql_query($sql3) OR die(mysql_error());
    ?>

<select name="empf" style="width:200pt"> 
<?php 
    while ($row3 = mysql_fetch_assoc($result3)) { 
     
        echo '<option value="'. $row['empf'] .'">'. $row3['vorname'] .' '. $row3['nachname'].'</option>'; 
    }
?>
$row['empf'] ist der empfehler, und dieser sollte eigentlich selected werden.
 
mit dem hier*gg*

ich hab direkt darunter auch ne Abfrage und $row['empf'] wird auch gefüllt, es zeigt auch den richtigen Datensatz an, nur leider nicht per Dropdown feld.
PHP:
$sql = "SELECT * FROM user WHERE user_id = $id";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
 
Hi,

die Vorauswahl eines Datensatzes geht per HTML-Attribut selected="selected", welches du in das entsprechede Optiontag reinschreibst.
Eine simple If-Anweisung in der Schleife sollte seinen Dienst tun:

PHP:
<select name="empf" style="width:200pt"> 
<?php 
    while ($row3 = mysql_fetch_assoc($result3)) { 
       if($row['empf'] == $row3['keine_ahnung_evtl_id?'])
         echo '<option selected="selected" value="'. $row['empf'] .'">'. $row3['vorname'] .' '. $row3['nachname'].'</option>'; 
      else
         echo '<option value="'. $row3['was_soll_sonst_ausgegeben_werden?'] .'">'. $row3['vorname'] .' '. $row3['nachname'].'</option>'; 
    }
?>

Bitte die entsprechenden Felder ausbessern, ich kenn ja deine DB Struktur nit ;)

Gruß
BK
 
ist das geil*gg* das tut genauso wie ich es will*gg*

und du hattest recht die id er gebraucht*gg*

PHP:
<?php 
    $sql3 = 'SELECT * FROM user ORDER BY nachname ASC;'; 
    $result3 = mysql_query($sql3) OR die(mysql_error());
    ?>

<select name="empf" style="width:200pt"> 
<?php 

while ($row3 = mysql_fetch_assoc($result3)) {  
       if($row['empf'] == $row3['user_id']) 
         echo '<option selected="selected" value="'. $row['empf'] .'">'. $row3['vorname'] .' '. $row3['nachname'].'</option>';  
      else 
         echo '<option value="'. $row3['user_id'] .'">'. $row3['vorname'] .' '. $row3['nachname'].'</option>';  
    } 

?>

danke nochmals*gg*
 
Kein Problem ;)

Ach ja, meine Lösung ist, denke ich, nicht ganz redundanzfrei. Weiß nicht, ob es so "schöner" ist ;) Aber auf alle Fälle ein wenig kürzer :)

PHP:
while ($row3 = mysql_fetch_assoc($result3)) {  
  echo '<option ';
  if($row['empf'] == $row3['user_id']) 
     echo 'selected="selected" ';   
  echo 'value="' . $row3['user_id'] . '">' . $row3['vorname'] . ' ' . $row3['nachname'] . '</option>';
}

Wollt ich noch loswerden :D

Gruß
BK
 
lso vom Verständnis her sind eigendlich beide Antworten gleich oder was ist der große unterschied zwischen beiden Möglichkeiten?
es muss halt laufen, das ist mir wichtig*gg* wie groß die Datei ist ist mir wurscht*gg*
 
Zurück