Добијање резултата при SQL упиту у PHP

У претходној лекцији смо направили тест код. Подсећам на његов значајан део, који извршава упит ка бази:

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<?php
  $row = mysqli_fetch_assoc($res);
  var_dump($row);
?>

Као резултат var_dump ће исписати низ са првим радником:

php<?php
  ['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>

При томе из променљиве $res први радник ће нестати, и следећи позив mysqli_fetch_assoc ће већ добити следећег радника.

И тако можемо позивати нашу функцију док се радници не потроше. Кад се то деси, следећи позив функције ће вратити false.

Хајде да пробамо:

php<?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 - радници су потрошени
?>