PHP'де SQL суроосунун натыйжасын алуу
Өткөн сабакта биз сыноо коду жасадык. Анын негизги бөлүгүн эске салам, ал базага суроо жүргүзөт:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Көрүп тургандарыңыздай, базага суроо жүргүзүлгөндөн кийин,
$res өзгөрмөсүндө бул аракеттин натыйжасы жатканы.
Бирок ал бизге керектүү түрдө эмес, база бизге жөнөткөн
форматта жаткан.
Натыйжаны бизге тааныш формада алуу үчүн,
mysqli_fetch_assoc функциясын колдонуу керек,
ал натыйжадан бир сапты алып чыгарат.
Келгиле, аракет кылалы:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Натыйжада var_dump биринчи жумушчу менен массивти
чыгарат:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Бул учурда $res өзгөрмөсүнөн биринчи
жумушчу жоголот, жана кийинки mysqli_fetch_assoc
чыкыруусу кийинки жумушчуну алат.
Жумушчулар бүткөнгө чейин биз бул функцияны
чыкыра алабыз. Бул болгондо, функциянын кийинки
чыкыруусу false кайтарат.
Келгиле, сынап көрөлү:
<?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 чыгарат - жумушчулар бүттү
?>