Hướng dẫn dùng mysqli_fetch_array trong PHP

Hàm mysqli_fetch_array() 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, mảng liên tục hoặc cả hai.

Hướng dẫn dùng mysqli_fetch_array trong PHP

Hướng dẫn dùng mysqli_fetch_array trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú phápmysqli_fetch_array( $result, $result_type);

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().
  • $result_type là tham số không bắt buộc, quy định kiểu trả về mang một trong các giá trị sau:
    • MYSQLI_ASSOC.
    • MYSQLI_NUM.
    • MYSQLI_BOTH.

Kết quả trả về

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

Bài viết này được đăng tại [free tuts .net]

Ví dụ

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

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);

// Numeric array
$row=mysqli_fetch_array($result,MYSQLI_NUM);
printf ("%s (%s)\n",$row[0],$row[1]);

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

// Free result set
mysqli_free_result($result);

mysqli_close($con);

Tham khảo: w3schools.com

Hàm mysqli_fetch_array() 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, mảng liên tục hoặc cả hai.

Cú pháp

Cú phápmysqli_fetch_array( $result, $result_type);

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().
  • $result_type là tham số không bắt buộc, quy định kiểu trả về mang một trong các giá trị sau:
    • MYSQLI_ASSOC.
    • MYSQLI_NUM.
    • MYSQLI_BOTH.

Kết quả trả về

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

Ví dụ

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

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);

// Numeric array
$row=mysqli_fetch_array($result,MYSQLI_NUM);
printf ("%s (%s)\n",$row[0],$row[1]);

// Associative array
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
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 dùng mysqli_fetch_array trong PHP

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

<?php
$link = mysqli_connect('localhost', 'root', '', 'data') or die(mysql_error());
if ($link) {
echo '<script language="javascript">alert("Kết nối thành công!");</script>';
}
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]."<br/>";
}
?>

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

Hướng dẫn dùng mysqli_fetch_array trong PHP

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 dùng mysqli_fetch_array trong PHP

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]."<br/>";

}

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']."<br/>";
}

Và kết quả là

Hướng dẫn dùng mysqli_fetch_array trong PHP

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.