SQL vaicājuma rezultāta iegūšana PHP
Iepriekšējā nodarbībā mēs izveidojām testa kodu. Atgādināšu tā būtisko daļu, kas veic vaicājumu datu bāzei:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Kā jūs redzat, pēc tam, kad notiek
vaicājums datu bāzei, mainīgajā $res
būs šīs darbības rezultāts. Tomēr
tas atrodas nevis tajā formā, kas mums vajadzīga
PHP, bet tajā formā, kādā to nosūtīja
mums datu bāze.
Lai iegūtu rezultātu ierastajā
formā, ir jāizmanto funkcija
mysqli_fetch_assoc, kas izvelk no
rezultāta vienu rindu.
Pamēģināsim:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Rezultātā var_dump izvadīs masīvu
ar pirmo darbinieku:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Šajā laikā no mainīgā $res pirmais
darbinieks pazudīs, un nākamais mysqli_fetch_assoc izsaukums
iegūs jau nākamo darbinieku.
Un tā var izsaukt mūsu funkciju līdz
tam brīdim, kad darbinieki beigsies. Tiklīdz
tas notiks, nākamais funkcijas
izsaukums atgriezīs false.
Pamēģināsim:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // darbinieks numurs 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // darbinieks numurs 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // darbinieks numurs 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // darbinieks numurs 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // darbinieks numurs 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // darbinieks numurs 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // izvadīs NULL - darbinieki beigušies
?>