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

Kao rezultat var_dump ispisaće niz sa prvim radnikom:

php<?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<?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
?>