PHP-də SQL sorğusunun nəticəsini əldə etmək
Əvvəlki dərsdə biz test kodunu hazırlamışdıq. Onun əsas hissəsini, bazaya sorğu yerinə yetirən hissəni xatırladım:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Gördüyünüz kimi, bazaya sorğu yerinə yetirildikdən sonra,
$res dəyişənində bu əməliyyatın nəticəsi
yerləşəcək. Lakin bu nəticə bizim PHP-də ehtiyac duyduğumuz
formada deyil, bazanın bizə göndərdiyi formadadır.
Nəticəni bizim üçün adi formada əldə etmək üçün,
nəticədən bir sətri çıxaran mysqli_fetch_assoc
funksiyasından istifadə etmək lazımdır.
Gəlin cəhd edək:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Nəticədə var_dump ilk işçi ilə massivi
çıxardacaq:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Bu zaman $res dəyişənindən ilk işçi
yox olacaq və mysqli_fetch_assoc-ın növbəti
çağırışı artıq növbəti işçini əldə edəcək.
Və biz funksiyamızı işçilər tükənənə qədər
çağıra bilərik. Bu baş verən kimi, funksiyanın
növbəti çağırışı false qaytaracaq.
Gəlin cəhd edək:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // işçi nomre 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // işçi nomre 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // işçi nomre 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // işçi nomre 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // işçi nomre 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // işçi nomre 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // NULL çıxardacaq - işçilər bitdi
?>