Натиҷаи дархости SQL-ро дар PHP гирифтан
Дар дарси гузашта мо рамзи озмоишӣ сохтем. Қисми муҳими онро, ки ба пойгоҳи додаҳо дархост мефиристод, ба ёд меоварем:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Чунон ки мебинед, пас аз анҷом ёфтани дархост ба пойгоҳ, дар тағирёбандаи $res
натиҷаи ин амал хобӣ хоҳад буд. Аммо он дар он шакле, ки ба мо дар PHP лозим аст, нест,
балки дар шакле аст, ки пойгоҳи додаҳо онро ба мо фиристодааст.
Барои гирифтани натиҷа дар шакли одатии мо, бояд аз функсияи
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-ро мебарорад - коргарон тамом шуданд
?>