Pridobivanje rezultata pri SQL poizvedbi v PHP
V prejšnji lekciji smo naredili testno kodo. Spomnim se njegovega bistvenega dela, ki izvaja poizvedbo po bazi:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Kot vidite, potem ko se izvede
poizvedba po bazi, bo v spremenljivki $res
ležal rezultat tega dejanja. Vendar
ne leži v obliki, ki jo potrebujemo
v PHP, ampak v obliki, v kateri nam jo je poslala
baza.
Da bi dobili rezultat v nam znani
obliki, je treba uporabiti funkcijo
mysqli_fetch_assoc, ki izvleče iz
rezultata eno vrstico.
Poskusimo:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Kot rezultat bo var_dump izpisal polje
s prvim delavcem:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Pri tem pa bo iz spremenljivke $res prvi
delavec izginil in naslednji klic mysqli_fetch_assoc
bo dobil že naslednjega delavca.
In tako lahko kličemo našo funkcijo
dokler se delavci ne bodo končali. Ko
se to zgodi, bo naslednji klic
funkcije vrnil false.
Poskusimo:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // delavec številka 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // delavec številka 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // delavec številka 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // delavec številka 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // delavec številka 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // delavec številka 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // izpisal bo NULL - delavci so se končali
?>