Obținerea rezultatului unei interogări SQL în PHP
În lecția anterioară am făcut codul de test. Vă reamintesc partea sa esențială, care execută interogarea bazei de date:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
După cum vedeți, după ce se realizează
interogarea bazei de date, în variabila $res
va fi stocat rezultatul acestei acțiuni. Cu toate acestea,
acesta nu este stocat în forma de care avem nevoie
în PHP, ci în forma în care ni l-a trimis
baza de date.
Pentru a obține rezultatul în forma noastră obișnuită,
este necesar să folosim funcția
mysqli_fetch_assoc, care extrage din
rezultat un rând.
Să încercăm:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Ca rezultat, var_dump va afișa un array
cu primul angajat:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
În acest moment, din variabila $res primul
angajat va dispărea, iar următorul apel mysqli_fetch_assoc
va obține deja următorul angajat.
Și astfel puteți apela funcția noastră
până când se termină angajații. De îndată ce
se întâmplă acest lucru, următorul apel al
funcției va returna false.
Să încercăm:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // angajatul numărul 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // angajatul numărul 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // angajatul numărul 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // angajatul numărul 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // angajatul numărul 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // angajatul numărul 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // va afișa NULL - s-au terminat angajații
?>