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
$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 ни чиқаради - ишчилар тугади
?>