Moin!
Nur möchte ich die Daten natürlich in $row[0], $row[1], $row[2],... usw. haben.
Du willst das Abfrageergebnis aus der Datenbank nicht (noch nicht) wirekt ausgeben, sondern in ein Array speichern?
Ich habs mit $row[$i] im Script versucht, aber das verursacht nur Fehler.
Wenn du es korrekt gemacht hättest, wäre es gegangen. :)
Zunächst mal: $row ist als Variable nur einmal vorhanden. Du weist ihr einmal das Ergebnis von mysql_num_rows zu, und später dann die Ergebnisse von mysql_fetch_array. Das hat möglicherweise unerwünschte Nebeneffekte.
Aber zum Thema:
$abfrage = "SELECT nick FROM friends ORDER BY nick";
$sqlergebnis = mysql_query($abfrage, $conn);
$anzzeilen = 0;
while ($zeilen[] = mysql_fetch_array($sqlergebnis))
{$anzzeilen++;}
So simpel kann es sein. Die Zuweisung $zeilen[] = irgendwas (also die Angabe eines Arrays ohne Index) hängt ein neues Element hinten an das Array dran. Am Anfang existiert das Array noch garnicht, dann wird es angelegt.
Auf diese Weise wird ein Array gefüllt mit den einzelnen Zeilen der SQL-Abfrage.
Dabei ist anzumerken: Die Elemente des Arrays $zeilen sind wiederum Arrays.
Du greifst dann also mit $zeilen[0]['nick'] auf die Spalte 'nick' der Abfrage zu (nimm besser diesen Hash-Zugriff anstatt die numerische Variante $zeilen[0][0], dann weißt du auch später noch, was du da machst, und wenn deine Abfrage keine Spalte 'nick' enthält, sondern aus Versehen 'passwort', kann dir nicht passieren, daß stattdessen diese ausgegeben wird.
Logischerweise gibts auch $zeilen[1]['nick'] und so weiter bis zu maximal $zeilen[$anzzeilen-1]['nick'].
Du kannst also mit einer einfachen FOR-Schleife alle Zeilen ausgeben:
for ($i=0;$i<$anzzeilen;$i++);
{
echo $zeilen[$i]['nick']."<br>\n";
}
Nur mal so als Beispiel.
- Sven Rautenberg