Mendapatkan Hasil daripada Pertanyaan SQL dalam PHP
Dalam pelajaran sebelumnya, kita telah membuat kod ujian. Ingatkan bahagian pentingnya, yang melaksanakan pertanyaan kepada pangkalan data:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Seperti yang anda lihat, selepas pertanyaan kepada
pangkalan data berlaku, dalam pembolehubah $res
akan terletak hasil daripada tindakan tersebut. Walau bagaimanapun,
ia terletak bukan dalam bentuk yang kita perlukan
dalam PHP, tetapi dalam bentuk yang dihantar oleh
pangkalan data kepada kita.
Untuk mendapatkan hasil dalam bentuk yang biasa
bagi kita, adalah perlu untuk menggunakan fungsi
mysqli_fetch_assoc, yang mengambil satu baris
daripada hasil tersebut.
Mari kita cuba:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Hasilnya var_dump akan memaparkan array
dengan pekerja pertama:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Pada masa yang sama, dari pembolehubah $res pekerja pertama
akan hilang, dan panggilan seterusnya mysqli_fetch_assoc
akan mendapat pekerja seterusnya.
Dan begitu juga kita boleh memanggil fungsi kita
sehingga pekerja habis. Sebaik sahaja ini
berlaku, panggilan fungsi seterusnya
akan mengembalikan false.
Mari kita cuba:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // pekerja nombor 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // pekerja nombor 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // pekerja nombor 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // pekerja nombor 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // pekerja nombor 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // pekerja nombor 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // akan memaparkan NULL - pekerja sudah habis
?>