Marrja e rezultatit nga kërkesa SQL në PHP
Në mësimin e mëparshëm ne krijuam kodin testues. Kujtoj pjesën thelbësore të tij, e cila ekzekuton kërkesën në bazën e të dhënave:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Siç e shihni, pasi të kryhet kërkesa
në bazën e të dhënave, në variablin $res
do të jetë rezultati i këtij veprimi. Megjithatë,
rezultati nuk është në formën që na nevojitet
në PHP, por në formën në të cilën na e dërgoi
baza e të dhënave.
Për të marrë rezultatin në formën e njohur
për ne, është e nevojshme të përdoret funksioni
mysqli_fetch_assoc, i cili nxjerr nga
rezultati një rresht.
Le të provojmë:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Si rezultat var_dump do të shfaqë një array
me punonjësin e parë:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Në këtë rast nga variabli $res i pari
punonjës do të zhduket, dhe thirrja e radhës e mysqli_fetch_assoc
do të marrë punonjësin tjetër.
Dhe kështu mund të thërrasim funksionin tonë
derisa të mbarojnë punonjësit. Sapo
të ndodhë kjo, thirrja e radhës e
funksionit do të kthejë false.
Le të provojmë:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // punonjësi numër 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // punonjësi numër 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // punonjësi numër 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // punonjësi numër 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // punonjësi numër 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // punonjësi numër 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // do të shfaqë NULL - punonjësit kanë mbaruar
?>