Beschreibung
array
mysql_fetch_array ( resource Ergebnis-Kennung [, int Ergebnistyp])
Liefert ein Array das dem aktuellen Datensatz entspricht oder FALSE,
wenn keine weiteren Datensätze vorliegen.
mysql_fetch_array() ist eine erweiterte
Version von mysql_fetch_row(). Die Daten
werden sowohl unter numerischen Indizes des Ergebnis-Arrays abgelegt,
als auch unter assoziativen Indizes. Als Schlüssel für die assoziativen
Indizes werden die Feldnamen benutzt.
Falls zwei oder mehrere Spalten des Ergebnisses den gleichen
Feldnamen haben, dann wird nur der Wert der letzten Spalte im Array
unter diesem Feldnamen abgelegt. Um auch auf die anderen gleichnamigen
Spalten zugreifen zu können, müssen Sie den numerischen Index der Spalte
verwenden oder einen Alias für die Spalte vergeben. Falls Sie Aliase für
Spalten verwenden, können Sie auf die Inhalte dieser Spalten nicht über
ihren ursprünglichen Namen zugreifen. (In folgendem Beispiel können Sie
'field' nicht benutzen).
Beispiel 1. Query with duplicate field names select tone.field as foo ttwo.field as bar from tone, ttwo |
|
Zu betonen ist, dass der Gebrauch von
mysql_fetch_array()
nicht signifikant langsamer ist als
mysql_fetch_row(), obwohl die Funktion einen
sichtlichen Mehrwert bietet.
Das optionale zweite Argumente Ergebnistyp
in mysql_fetch_array() ist eine Konstante und
kann die folgenden Werte annehmen: MYSQL_ASSOC, MYSQL_NUM und
MYSQL_BOTH. Diese Eigenschaft steht seit PHP 3.0.7 zur Verfügung. MYSQL_BOTH
ist der Standard für diesen Paramater.
Verwenden Sie MYSQL_BOTH, erhalten Sie ein Array mit assoziativen und
numerischen Indizes. Bei MYSQL_ASSOC erhalten Sie nur aasoziative
Indizes (genau wie bei mysql_fetch_assoc()).
Bei MYSQL_NUM erhalten Sie nur numerische Indizes (genau wie bei
mysql_fetch_row()).
Beispiel 2. mysql_fetch_array mit MYSQL_NUM <?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Keine Verbindung möglich");
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s Name: %s", $row[0], $row[1]);
}
mysql_free_result($result);
?> |
|
Beispiel 3. mysql_fetch_array mit MYSQL_ASSOC <?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Keine Verbindung möglich");
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?> |
|
Beispiel 4. mysql_fetch_array mit MYSQL_BOTH <?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Keine Verbindung möglich");
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
mysql_free_result($result);
?> |
|
Für weitere Details, siehe auch
mysql_fetch_row() und
mysql_fetch_assoc()