Добијање резултата при SQL упиту у PHP
У претходној лекцији смо направили тест код. Подсећам на његов значајан део, који извршава упит ка бази:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Као што видите, након што се изврши
упит ка бази, у променљивој $res
ће бити резултат те акције. Међутим
резултат није у форми која нам је потребна
у PHP, него у форми у којој нам га је послала
база.
Да би добили резултат у форми која нам је позната,
потребно је да употребимо функцију
mysqli_fetch_assoc, која извлачи из
резултата један ред.
Хајде да пробамо:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Као резултат var_dump ће исписати низ
са првим радником:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
При томе из променљиве $res први
радник ће нестати, и следећи позив mysqli_fetch_assoc
ће већ добити следећег радника.
И тако можемо позивати нашу функцију док
се радници не потроше. Кад
се то деси, следећи позив
функције ће вратити false.
Хајде да пробамо:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // радник број 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // радник број 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // радник број 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // радник број 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // радник број 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // радник број 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // исписаће NULL - радници су потрошени
?>