Zum Ersten: Es kann nicht klappen! Mit
while ($ds = mysql_fetch_object($sql)) gehst Du alle gefundenen Datensätze durch und speicherst sie in ein und der selben Variable. Der Wert wird also immer überschrieben.
Zum Zweiten: Du schreibst $query = "SELECT * FROM mail"; - Wenn Du das machst, dann solltest Du lieber nicht mysql_fetch_row() nutzen. Du kannst Dir nie sicher sein, ob bei einem SELECT * die Felder in der gleichen Reihenfolge ausgespuckt werden. Fügst Du mal ein Feld hinzu geht das Chaos erst richtig los...
Zwei Möglichkeiten das Problem zu lösen:
PHP-Code:
<form action='auswertung.php' method=post>
<fieldset>
<legend>Empfänger</legend>
<select name='an' size='5' multiple='multiple'>
<?php
include('mysql.inc');
// Variante 1
$query = 'SELECT * FROM mail';
$sql = mysql_query($query);
while ($ds = mysql_fetch_assoc($sql)){
echo "<option>{$ds['adresse']}</option>n";
}
// Variante 2
$query = 'SELECT adresse FROM mail';
$sql = mysql_query($query);
while (list($adresse) = mysql_fetch_row($sql)){
echo "<option>$adresse</option>n";
}
mysql_close($dz);
?>
</select>
</fieldset>
</form>