Hướng dẫn mysqli_fetch_assoc

Hàm mysqli_fetch_assoc() sẽ tìm và trả về một dòng kết quả của một truy vấn MySQL nào đó dưới dạng một mảng kết hợp.

Cú pháp

Cú phápmysqli_fetch_assoc( $result);

Trong đó:

  • $result là kết quả của truy vấn, là kết quả trả về của các hàm: mysqli_query(), mysqli_store_result() hoặc mysqli_use_result().

Kết quả trả về

Hàm sẽ trả về mảng kết hợp chứa thông tin của hàng kết quả.

Ví dụ

Cách sử dụng hàm mysqli_fetch_assoc():

Code

$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";
$result=mysqli_query($con,$sql);

// Associative array
$row=mysqli_fetch_assoc($result);
printf ("%s (%s)\n",$row["Lastname"],$row["Age"]);

// Free result set
mysqli_free_result($result);

mysqli_close($con);

Tham khảo: w3schools.com

Trong các câu lệnh PHP có nhiều lệnh nhìn qua có cảm giác chúng giống nhau hoàn toàn. Một trong số đó là mysqli_fetch_array và mysqli_fetch_assoc. Chúng đều có chức năng fetch dữ liệu từ câu query nhưng chắc chắn rằng sẽ có sự khác biệt.

Hướng dẫn mysqli_fetch_assoc

Vậy sẽ khác nhau giữa mysqli_fetch_array và mysqli_fetch_assoc là gì?

‘fetch’ trong tiếng Anh nghĩa là “đi tìm” vậy với câu lệnh này bạn hiểu nôm na là đi tìm dữ liệu đưa vào mảng.

mysqli_fetch_array: trả về một mảng có cả khóa số và chuỗi kết hợp (tên cột) , vì vậy ở đây bạn có thể sử dụng $row[‘column_name’] hoặc $row[0]

Hướng dẫn tạo Form đăng ký thêm thành viên vào Database: https://quachquynh.com/form-dang-ky-php/

Bạn sẽ chạy ví dụ bên dưới (Nếu trong cơ sở dữ liệu chưa có gì hãy đọc lại bài trên nhé!):

alert("Kết nối thành công!");';
}
else {
echo "Kết nối thất bại!";
}
$sql = "SELECT * FROM member";
$result = mysqli_query($link, $sql) or die(mysql_error());
while ($row = mysqli_fetch_array($result)) {
print $row[0];
print "\n";
print $row[1];
print "\n";
print $row[3];
print "\n";
print $row[4]."
"; } ?>

Khi chạy bạn sẽ nhận được kết quả như sau:

Hướng dẫn mysqli_fetch_assoc

mysqli_fetch_assoc: sẽ trả về mảng khóa được lập chỉ mục chuỗi và không có mảng số, do đó bạn sẽ không có tùy chọn ở đây bằng cách sử dụng các phím số như thế nào $row[0]

Cũng ví dụ trên bạn thay mysqli_fetch_array bằng mysqli_fetch_assoc xem có gì thay đổi không nhé!

Hướng dẫn mysqli_fetch_assoc

Và kết quả mình nhận được là xuất hiện lỗi.

Kết luận là mysqli_fetch_assoc không thể sử dụng $row[0] để xuất dữ liệu.

Tiếp theo anh em thay đoạn

while ($row = mysqli_fetch_assoc($result)) {

print $row[0];
print "\n";
print $row[1];
print "\n";
print $row[3];
print "\n";
print $row[4]."
"; }

Bằng

while ($row = mysqli_fetch_assoc($result)) {
print $row['id'];
print "\n";
print $row['username'];
print "\n";
print $row['email'];
print "\n";
print $row['phone']."
"; }

Và kết quả là

Hướng dẫn mysqli_fetch_assoc

Kết luận: mysqli_fetch_array dùng để xuất dữ liệu gồm các tên cột còn mysqli_fetch_assoc thì không làm được điều đó.

Qua bài viết này hi vọng bạn sẽ biết cách phân biệt giữa 2 cách fetch dữ liệu từ Database như thế nào rồi phải không nào.