(PHP 4, PHP 5)
mysql_fetch_array — Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt werden. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:
$result
[, int $result_type
= MYSQL_BOTH
] )Gibt ein Array zurück das der gelesenen Zeile entspricht und bewegt den internen Datenzeiger um einen Schritt vorwärts.
Ergebnis
Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().
result_type
Der Typ des Arrays, das gelesen werden soll. Er ist eine Konstante, die
folgende Werte haben kann: MYSQL_ASSOC
,
MYSQL_NUM
und
MYSQL_BOTH
.
Gibt ein Array von Zeichenketten zurück, das der gelesenen Zeile entspricht
oder FALSE
falls keine weiteren Zeilen vorhanden sind.
Der Typ des zurückgegebenen Arrays hängt davon ab,
wie result_type
definiert ist. Nutzen sie
MYSQL_BOTH
(Standard), erhalten sie ein Array mit
sowohl assoziativen als auch numerischen Indice. Nutzen
sie MYSQL_ASSOC
erhalten sie nur assoziative Indice
(wie mysql_fetch_assoc() arbeitet),
mit MYSQL_NUM
erhalten sie nur numerische Indice
(wie mysql_fetch_row() arbeitet).
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.
Beispiel #1 Abfrage mit alias für identische Feldnamen
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
Beispiel #2 mysql_fetch_array() mit MYSQL_NUM
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Keine Verbindung möglich: " . mysql_error());
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_error());
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_error());
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);
?>
Hinweis: Performance
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.
Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.
Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-
NULL
.