PHP'де SQL суроосунун натыйжасын алуу

Өткөн сабакта биз сыноо коду жасадык. Анын негизги бөлүгүн эске салам, ал базага суроо жүргүзөт:

php<?php
  $query = 'SELECT * FROM users';
  $res = mysqli_query($link, $query) or die(mysqli_error($link));
  var_dump($res);
?>

Көрүп тургандарыңыздай, базага суроо жүргүзүлгөндөн кийин, $res өзгөрмөсүндө бул аракеттин натыйжасы жатканы. Бирок ал бизге керектүү түрдө эмес, база бизге жөнөткөн форматта жаткан.

Натыйжаны бизге тааныш формада алуу үчүн, 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 чыгарат - жумушчулар бүттү
?>