Abrufen des Ergebnisses einer SQL-Abfrage in PHP
In der vorherigen Lektion haben wir den Testcode erstellt. Ich erinnere an den wesentlichen Teil davon, der die Abfrage an die Datenbank ausführt:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Wie Sie sehen, wird nach der Abfrage an die Datenbank
in der Variable $res
das Ergebnis dieser Aktion liegen. Allerdings
liegt es nicht in der Form vor, die wir in PHP
benötigen, sondern in der Form, in der es uns die
Datenbank geschickt hat.
Um das Ergebnis in der für uns gewohnten
Form zu erhalten, muss die Funktion
mysqli_fetch_assoc verwendet werden, die aus dem
Ergebnis eine Zeile ausliest.
Lassen Sie es uns versuchen:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Als Ergebnis gibt var_dump ein Array
mit dem ersten Mitarbeiter aus:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Dabei verschwindet der erste
Mitarbeiter aus der Variable $res,
und der nächste Aufruf von mysqli_fetch_assoc
erhält bereits den nächsten Mitarbeiter.
Und so kann man unsere Funktion aufrufen,
bis die Mitarbeiter ausgehen. Sobald
das passiert, gibt der nächste Aufruf
der Funktion false zurück.
Lassen Sie es uns versuchen:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // Mitarbeiter Nummer 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // Mitarbeiter Nummer 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // Mitarbeiter Nummer 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // Mitarbeiter Nummer 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // Mitarbeiter Nummer 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // Mitarbeiter Nummer 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // gibt NULL aus - keine Mitarbeiter mehr übrig
?>