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
$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
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Natijada var_dump birinchi
xodim bilan massivni chiqaradi:
<?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
$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
?>