MySQL không có chức năng Fetch Array. mysql_fetch_array thực chất là một hàm PHP cho phép bạn truy cập dữ liệu được lưu trữ trong kết quả trả về từ một mysql_query thành công. Nếu bạn đã xem qua Hướng dẫn về MySQL của chúng tôi thì bạn đã thấy chức năng này xuất hiện ở khắp mọi nơi
Bài học này sẽ hướng dẫn bạn cách thức và lý do sử dụng mysql_fetch_array trong Tập lệnh PHP của bạn
Bạn có biết những gì được trả về khi bạn sử dụng hàm mysql_query để truy vấn cơ sở dữ liệu MySQL không? . Đây là một truy vấn CHỌN mẫu của một bảng mà chúng ta đã tạo trong bài học Tạo bảng MySQL
Mã PHP và MySQL
Giá trị mà mysql_query trả về và lưu trữ vào $result là một loại dữ liệu đặc biệt, đó là Tài nguyên MySQL. Các chức năng PHP bổ sung được yêu cầu để trích xuất dữ liệu từ Tài nguyên này
Hàm mysql_fetch_array lấy tài nguyên truy vấn MySQL làm đối số [$result] và trả về hàng dữ liệu đầu tiên được trả về bởi mysql_query. Ví dụ bảng của chúng tôi về cơ bản trông giống như bảng dưới đây
bảng MySQL ví dụ
tênTimmy Mellowman23Sandy Smith21Bobby Wallace15
Hàng dữ liệu đầu tiên trong bảng này là "Timmy Mellowman" và "23". Khi chúng tôi tìm nạp một mảng từ MySQL Resource $result của chúng tôi, nó sẽ có tên và tuổi của Timmy trong đó
mysql_fetch_array trả về hàng đầu tiên trong Tài nguyên MySQL dưới dạng một mảng kết hợp. Các cột của Kết quả MySQL có thể được truy cập bằng cách sử dụng tên cột của bảng. Trong ví dụ về bảng của chúng tôi, đây là. tên và tuổi. Đây là mã để in ra hàng Kết quả MySQL đầu tiên
Mã PHP và MySQL
Trưng bày
Đây chỉ là những gì chúng tôi mong đợi sẽ xảy ra. Bây giờ, điều thú vị về mysql_fetch_array là bạn có thể sử dụng lại nó trên cùng một Tài nguyên MySQL để trả về các hàng thứ hai, thứ ba, thứ tư, v.v. Bạn có thể tiếp tục thực hiện việc này cho đến khi hết Tài nguyên MySQL [có thể gấp ba lần trong ví dụ của chúng tôi]
Âm thanh như một nhiệm vụ lặp đi lặp lại khủng khiếp. Sẽ thật tuyệt nếu chúng ta có thể nhận được tất cả kết quả của mình từ Tài nguyên MySQL trong một tập lệnh dễ thực hiện
Như chúng ta đã nói, hàm mysql_fetch_array trả về một mảng kết hợp, nhưng nó cũng trả về FALSE nếu không còn hàng nào để trả về. Sử dụng PHP While Loop, chúng ta có thể sử dụng thông tin này để làm lợi thế cho mình
Nếu chúng ta đặt câu lệnh "$row = mysql_fetch_array[]" làm câu lệnh điều kiện của vòng lặp while, chúng ta sẽ đạt được hai điều
- Chúng tôi sẽ nhận được một hàng thông tin MySQL mới mà chúng tôi có thể in ra mỗi khi vòng lặp kiểm tra câu lệnh điều kiện của nó
- Khi không còn dòng nào, hàm sẽ trả về FALSE khiến vòng lặp while dừng lại
Bây giờ chúng ta đã biết những gì chúng ta cần làm và cách thực hiện nó, phần lớn mã tự viết, vì vậy hãy chuyển sang bài học tiếp theo. Đùa thôi. Đây là mã sẽ in ra tất cả các hàng trong Tài nguyên MySQL của chúng tôi
Mã PHP và MySQL
echo $row['name']. " - ". $row['age']; echo "
"; } ?>
Trưng bày
Timmy Mellowman - 23
Sandy Smith - 21
Bobby Wallace-15
Và ở đó chúng tôi có tất cả các hàng từ bảng ví dụ của chúng tôi. Bạn có thể áp dụng tập lệnh này cho bất kỳ bảng MySQL nào miễn là bạn thay đổi cả tên bảng trong truy vấn và tên cột mà chúng tôi có trong mảng kết hợp
Nếu bạn muốn tải xuống bản PDF của hướng dẫn này, hãy xem Sách điện tử MySQL của chúng tôi từ Tizag. cửa hàng com. Bạn cũng có thể quan tâm đến việc nhận Sách điện tử PHP
điểm. 9
câu trả lời được chấp nhận
$sentToList = $row['sent_to'];
điều này sẽ lưu giá trị của $row['sent_to'];
trong biến. Vì vậy, điều này sẽ cập nhật $sentToList
mỗi lần
Thử cái này
$sentToList[] = $row['sent_to'];
điều này sẽ gán giá trị vào mảng
Thêm câu hỏi với thẻ tương tự
Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Sau đây là truy vấn để tạo một bảng -
mysql> create table QueryResultDemo −> [ −> Price int −> ]; Query OK, 0 rows affected [0.59 sec]
Bây giờ chúng ta hãy chèn một số bản ghi vào bảng. Sau đây là truy vấn để chèn bản ghi -
mysql> insert into QueryResultDemo values[100]; Query OK, 1 row affected [0.17 sec] mysql> insert into QueryResultDemo values[20]; Query OK, 1 row affected [0.13 sec] mysql> insert into QueryResultDemo values[200]; Query OK, 1 row affected [0.10 sec] mysql> insert into QueryResultDemo values[80]; Query OK, 1 row affected [0.15 sec]
Hiển thị tất cả các bản ghi từ bảng với sự trợ giúp của câu lệnh chọn. Truy vấn để hiển thị tất cả các bản ghi như sau -
mysql> select *from QueryResultDemo;
Sau đây là đầu ra -
+-------+ | Price | +-------+ | 100 | | 20 | | 200 | | 80 | +-------+ 4 rows in set [0.00 sec]
Bây giờ bạn có thể đặt kết quả truy vấn trong một biến với sự trợ giúp của lệnh SET. Truy vấn như sau