Добивање на резултат при 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 - работниците потрошени
?>