Dobijanje rezultata pri SQL upitu u PHP
U prethodnoj lekciji napravili smo testni kod. Podsetśu vas na njegov bitan deo koji izvršava upit ka bazi:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Kao što vidite, nakon što se izvrši upit ka
bazi, u promenljivoj $res
će se nalaziti rezultat te akcije. Međutim,
ne nalazi se u obliku koji nam je potreban
u PHP-u, već u obliku u kojem nam ga je baza poslala.
Da bismo dobili rezultat u nama poznatom
obliku, potrebno je koristiti funkciju
mysqli_fetch_assoc, koja izvlači iz
rezultata jedan red.
Hajde da probamo:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Kao rezultat var_dump ispisaće niz
sa prvim radnikom:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Pritim će iz promenljive $res prvi
radnik nestati, i sledeći poziv mysqli_fetch_assoc
dobiće već sledećeg radnika.
I tako možemo pozivati našu funkciju sve
dok se radnici ne iscrpe. Čim se to desi, sledeći poziv
funkcije vratiće false.
Hajde da probamo:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // radnik broj 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // radnik broj 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // radnik broj 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // radnik broj 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // radnik broj 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // radnik broj 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // ispisaće NULL - radnici su potrošeni
?>