Kry van resultaat by SQL-navraag in PHP
In die vorige les het ons die toetskode gemaak. Laat ek die wesenlike deel daarvan, wat die navraag na die databasis uitvoer, in herinnering bring:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Soos jy kan sien, nadat die navraag na die databasis
plaasgevind het, sal die resultaat van hierdie aksie
in die veranderlike $res lê. Dit lê egter
nie in die vorm wat ons in PHP nodig het nie,
maar in die vorm waarin die databasis dit na ons
gestuur het.
Om die resultaat in die vertroude vorm te kry,
moet jy die funksie mysqli_fetch_assoc gebruik,
wat een ry uit die resultaat haal.
Kom ons probeer:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
As gevolg sal var_dump 'n skikking
met die eerste werker uitdruk:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Intussen sal die eerste werker uit die veranderlike
$res verdwyn, en die volgende oproep van
mysqli_fetch_assoc sal die volgende werker
kry.
En so kan jy ons funksie aanroep totdat
die werkers opraak. Sodra dit gebeur, sal
die volgende funksie-oproep false
teruggee.
Kom ons probeer:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // werker nommer 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // werker nommer 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // werker nommer 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // werker nommer 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // werker nommer 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // werker nommer 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // sal NULL druk - werkers het opgeraak
?>