Dynamisch generiertes Dropdown

S

SB_99

Hi Boardies,
hab da ein problem. und zwar möchte ich das ein dropdown seine werte aus einer datenbank erhällt. das ist jetzt was ich auf die beine gestellt habe
PHP:
$sqlbefehl= "Select * FROM wohnung order by ort";
$serverid  = mysql_connect  ( $sqlhost, $sqluser, $sqlpass);
  echo mysql_error($serverid);

   if (!mysql_select_db( $database))
      echo mysql_error($serverid);
   if (!$ergebnis  = mysql_query($sqlbefehl, $serverid))
      echo mysql_error($serverid);
$spalte = mysql_fetch_array ($ergebnis);
mysql_select_db($database);
?>
<table width="100%">
 <form method="post" action="eingabe_uebersicht.php">
 <tr>
  <td>
   <select name="ort">
           <option selected><?php echo $ort ?></option>
           <? while ( $spalte = mysql_fetch_array ($ergebnis)) {
           echo "<option>$spalte[ort]</option>";
           }
           ?>

   </select>
   <input type="submit" value="Anzeigen"></td></tr></table></form>
  </td>
 </tr>
</table>
allerdings gibt mir das nur ein eintrag zweimal aus und nicht alle einträge in der DB
Weis jemand rat?
Danke schonmal im voraus
 
probier mal statt mysql_fetch_array() den Befehl mysql_fetch_row()

Gruß
Dunsti
 
Dein Script ist ehrlichgesagt etwas "unordentlich" ... vielleicht liegts ja daran :)

probier mal folgendes Script:

PHP:
<?PHP
$serverid  = mysql_connect($sqlhost, $sqluser, $sqlpass);
mysql_select_db($database);
$sqlbefehl="SELECT * FROM wohnung ORDER BY ort";
$ergebnis  = mysql_query($sqlbefehl, $serverid);
?>
<form method="post" action="eingabe_uebersicht.php">
<select name="ort">
   <option selected><?php echo $ort; ?></option>
<?php while ($spalte = mysql_fetch_row($ergebnis)) {
           echo "<option>$spalte['ort']</option>";
           }
           ?>
</select>
<input type="submit" value="Anzeigen">
</form>

wenn das funktioniert kannst Du ja darauf Dein weiteres Script aufbauen. ;)

wenn nicht, dann melde Dich nochmal

Gruß
Dunsti
 
es funzt aber ich melde mich trozdem nochmal:)
allerdings musste ich noch ein paar änderungen machen denn so wie oben beschrieben funzte es leider nicht. ausserdem habe ich noch ne if-abfrage eingebaut damit mehrfach einträge nicht angezeigt werden nunja das ganze sieht jetzt so aus
PHP:
<?PHP
  $serverid  = mysql_connect($sqlhost, $sqluser, $sqlpass);
  mysql_select_db($database);
  $sqlbefehl="SELECT * FROM wohnung ORDER BY ort";
  $ergebnis  = mysql_query($sqlbefehl, $serverid);
  ?>
  <form method="post" action="eingabe_uebersicht.php">
  <select name="ort">
     <option selected>-------------------</option>
  <?php      while ($spalte = mysql_fetch_array($ergebnis)) {
             if ($spalte[ort] != $spalte_check){
             echo "<option>$spalte[ort]</option>";
             $spalte_check = $spalte[ort];
             }
             }
             echo "<option>alle</option>";
     ?>
  </select>
  <input type="submit" value="Anzeigen">
  </form>

und funzt wunderbar danke dir für die hilfe.
 
Hi!

wenn du
in dein SQL Statement
noch GROUP BY ort einfügst musst du nicht mehr überprüfen, ob der Ort doppelt ist

$sqlbefehl="SELECT * FROM wohnung GROUP BY ort ORDER BY ort";

mfg,
ZZZottel
 
Zurück