PHPda SQL so'rov natijasini olish

Oldingi darsda biz test kodini yaratdik. Uning asosiy qismini, ya'ni bazaga so'rov amalga oshiradigan qismini eslaymiz:

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

Ko'rib turganingizdek, bazaga so'rov yuborilgandan so'ng, $res o'zgaruvchisida ushbu harakat natijasi saqlanadi. Biroq, u bizga PHPda kerakli shaklda emas, balki bazadan kelgan shaklda bo'ladi.

Natijani biz uchun tanish shaklda olish uchun, natijadan bitta qatorni olib beradigan mysqli_fetch_assoc funksiyasidan foydalanish kerak.

Keling, sinab ko'ramiz:

php<?php
  $row = mysqli_fetch_assoc($res);
  var_dump($row);
?>

Natijada var_dump birinchi xodim bilan massivni chiqaradi:

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

Bunda $res o'zgaruvchisidan birinchi xodim yo'qoladi va keyingi mysqli_fetch_assoc chaqiruvi allaqachon keyingi xodimni oladi.

Va xodimlar tugaguncha biz funksiyani shu tarzda chaqirishimiz mumkin. Qachonki bu sodir bo'lsa, keyingi funksiya chaqiruvi false qiymatini qaytaradi.

Keling, sinab ko'ramiz:

php<?php
  $row1 = mysqli_fetch_assoc($res);
  var_dump($row1); // xodim raqam 1
  
  $row2 = mysqli_fetch_assoc($res);
  var_dump($row2); // xodim raqam 2
  
  $row3 = mysqli_fetch_assoc($res);
  var_dump($row3); // xodim raqam 3
  
  $row4 = mysqli_fetch_assoc($res);
  var_dump($row4); // xodim raqam 4
  
  $row5 = mysqli_fetch_assoc($res);
  var_dump($row5); // xodim raqam 5
  
  $row6 = mysqli_fetch_assoc($res);
  var_dump($row6); // xodim raqam 6
  
  $row7 = mysqli_fetch_assoc($res);
  var_dump($row7); // NULL chiqaradi - xodimlar tugadi
?>