PHP: MySQL-Ergebnis in Array speichern
Info von Stefan Trost | Letztes Update am 19.06.2023 | Erstellt am 01.11.2012
Möchten wir das Ergebnis einer MySQL-Abfrage in PHP verarbeiten, ist es oft praktisch, die Daten direkt in einem Array abzuspeichern. Wichtige Funktionen in diesem Zusammenhang sind mysqli_fetch_array(), mysqli_fetch_row() und mysqli_fetch_assoc(). In dieser Info möchte ich auf den Unterschied eingehen und diesen erklären.
- mysqli_fetch_row - Numerisch indizierte Arrays
- mysqli_fetch_assoc - Assoziative Arrays
- mysqli_fetch_array - Der Alleskönner
Numerisch indiziertes Array mit mysqli_fetch_row
Die Funktion mysqli_fetch_row() gibt uns ein numerisch indiziertes Array zurück. Das heißt, dass wir auf die Daten zum Beispiel mit $arr[1] oder $arr[3] zurückgreifen können:
$res = mysqli_query($db, "SELECT name, ort, land FROM tab WHERE id=1"); $arr = mysqli_fetch_row($res); echo $arr[0]; // name echo $arr[1]; // ort echo $arr[2]; // land
Wie das Beispiel zeigt entspricht die Reihenfolge der Elemente im Array der Reihenfolge der Felder in der Abfrage. Wir können also über die Abfrage festlegen, wie unser Array gefüllt sein soll.
Assoziatives Array mit mysqli_fetch_assoc
Die Funktion mysqli_fetch_assoc() liefert uns ein assoziatives Array zurück. Das bedeutet, dass die Felder nicht mit der Index-Zahl angesprochen werden können sondern mit dem Namen des Feldes. Und dieser Feldname entspricht dem Namen unserer Spalte aus unserer MySQL Datenbank:
$res = mysqli_query($db, "SELECT name, ort, land FROM tab WHERE id=1"); $arr = mysqli_fetch_assoc($res); echo $arr['name']; // name echo $arr['ort']; // ort echo $arr['land']; // land
Interessant in diesem Zusammenhang ist auch die Funktion extract(). Diese Funktion kann uns automatisch aus dem Array einzelne Variablen mit dem jeweiligen Namen erzeugen, die uns danach im Code zur Verfügung stehen, wie das folgende Beispiel zeigt:
$res = mysqli_query($db, "SELECT name, ort, land FROM tab WHERE id=1"); $arr = mysqli_fetch_assoc($res); extract($arr); echo $name; // name echo $ort; // ort echo $land; // land
Auch die Funktion list() kann dazu genutzt werden, um aus dem Array einzelne Variablen zu machen, wie das folgende Beispiel zeigt:
$res = mysqli_query($db, "SELECT name, ort, land FROM tab WHERE id=1"); list($name, $ort, $land) = mysqli_fetch_row($res); echo $name; // name echo $ort; // ort echo $land; // land
Im Gegensatz zu extract() haben wir mit list() allerdings die Möglichkeit, frei zu bestimmen, wie unsere Variablen heißen sollen. Wir können, aber müssen uns nicht an die Namen der Spalten in unserer Tabelle halten.
Der Alleskönner mysqli_fetch_array
Die Funktion mysqli_fetch_array beherrscht es, den Datensatz sowohl als numerisch indiziertes als auch als assoziatives Array zusammen auszugeben. Dies lässt sich durch den Parameter MYSQLI_NUM oder MYSQLI_ASSOC steuern.
Lässt man den Parameter ganz weg oder benutzt MYSQLI_BOTH, kann man mit beiden Arten auf die Daten zurückgreifen:
$arr = mysqli_fetch_array($res); //entspricht mysqli_fetch_array($res, MYSQL_BOTH); echo $arr[0]; // name echo $arr['ort']; // ort echo $arr[2]; // land
Der Aufruf mysqli_fetch_array($res, MYSQLI_NUM) entspricht der Funktion mysqli_fetch_row($res).
Der Aufruf mysqli_fetch_array($res, MYSQLI_ASSOC) entspricht der Funktion mysqli_fetch_assoc($res).
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
PHP: Formular-Eingaben als Array an PHP Skript schicken
Tipp | 0 Kommentare
PHP: Alle leeren Elemente aus String-Array entfernen
Tipp | 0 Kommentare
JavaScript: Arrays erstellen und nutzen
Info | 0 Kommentare
Lazarus: Datei als Byte-Array laden und Byte-Array als Datei speichern
Tutorial | 0 Kommentare
PHP: Array in Einzelvariablen schreiben
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.