Kupata Matokeo ya Swala la SQL katika PHP
Katika somo lililopita tulifanya msimbo wa majaribio. Nakukumbusha sehemu yake muhimu, inayofanya swala la hifadhidata:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Kama unavyoona, baada ya swala la hifadhidata kutekelezwa,
katika kitabu $res
utakuwapo matokeo ya kitendo hicho. Hata hivyo,
hayo hayako katika muundo tunayohitaji
katika PHP, bali yako katika muundo ambao hifadhidata
imetutumia.
Ili kupata matokeo kwa muundo tuliozoea,
ni muhimu kutumia kitendo
mysqli_fetch_assoc, kinachotoa kutoka kwenye
matokeo safu moja.
Hebu tujaribu:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Matokeo ya var_dump yatatoa safu
na mfanyakazi wa kwanza:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Wakati huo huo, kutoka kwenye kitabu $res mfanyakazi wa kwanza
utapotea, na wito ujao wa mysqli_fetch_assoc
utapata tayari mfanyakazi ujao.
Na hivi unaweza kuuita kitendo chetu hadi
wakati wafanyakazi watakapokwisha.
Mara tu hii itatokea, wito ujao
wa kitendo utarudisha false.
Hebu tujaribu:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // mfanyakazi namba 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // mfanyakazi namba 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // mfanyakazi namba 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // mfanyakazi namba 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // mfanyakazi namba 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // mfanyakazi namba 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // yatatoa NULL - wafanyakazi wamekwisha
?>