mehrere Selectergebnisse anzeigen

Flens

Erfahrenes Mitglied
Hab folgendes Problem:

Mache eine Abfrage nach dem Datum.
Er gibt mir z.B. 2 Werte zurück.
Diese Daten möchte ich dann in einem Formular anzeigen.



$query3 = @mysql_query("SELECT distinct Datum FROM t_aktuell WHERE TankID = $TANKID[0]");
$anzahldatum = mysql_num_rows($query3);
$result = mysql_fetch_array($query3);
for ($j=0; $j<$anzahldatum; $j++)
{
$Datum = $result[$j];
echo "<option>$Datum</option>";

}

In result[0] ist ein Datum drin.
In result[1] ist nix drin!

Es wird aber nur der letzte Abfragewert angezeigt. Wie komme ich an alle Ergebnisse der Abfrage?




Gruß

Flens
 
Kann es sein das deine SQL Abfrage eindeutig ist? Wegen $TANKID

Normalerweise kommt eine ID ja nur einmal vor.
 
Hi!
Glaube es liegt an dem DISTINCT in dem SELECT. So viel ich weiß, erzwingt DISTINCT doch, daß aus mehreren Rückgabewerten nur ein eindeutiger gebildet wird?! D.H. hier der SELECT liefert immer nur einen Wert zurück.
mfg
 
Hab das schon bei phpMYAdmin (SQL) getestet. Da gibt er mir 2 Werte zurück!

Die Variable $anzahldatum hat ja auch den Wert 2, aber an den zweiten Wert komme ich nicht ran.
 
Hallo!
Kann sein, dass ich da jetzt etwas total durcheinanderbring, aber soweit ich das sehe, wird ja nur eine Zeile aus der Datenbank ausgelesen und das Array $result gibt nur die einzelen Spalten dieser Zeile an.

Zudem nochwas:
- mysql_fetch_array gibt für $result normalerweise den Spaltennamen als key zurück. Bsp: $result['TANKID']
- mysql_fetch_row weißt $result als key eine Zahl zu: $result[1]
-> so habs ich zumindest aufgefasst.
 
Hmm!
Kann es sein, daß das ganze innerhalb einer WHILE-Schleife z. B. in ein Array eingelesen werden muß und dann weiterbearbeitet werden? Sonst muß manalle Ausgaben in die WHILE-Schleife direkt einfügen. Hier ist $result ja nur eine normale Variable und kein Feld. Das würde erklären, daß immer nur der letzte Datensatz da ist.
Der folgende Code sollte auf die Schnelle funktionieren, die Datensaetze dann im Array $result stehen:

$result = array();
while($row1 = mysql_fetch_row($query3))
{
$result[] = $row1;
}
 
Fehler: die mysql_fetch_array Abfrage muss in die Schleife


$query3 = @mysql_query("SELECT distinct Datum FROM t_aktuell WHERE TankID = $TANKID[0]");
$anzahldatum = mysql_num_rows($query3);
$result = mysql_fetch_array($query3);
for ($j=0; $j<$anzahldatum; $j++)
{
$result = mysql_fetch_array($query3);
$Datum = $result[0];
echo "<option>$Datum</option>";
}
 
Zurück