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.

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: //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é!]:

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

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é!

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à

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.

Chủ Đề