Làm cách nào để lưu trữ kết quả truy vấn MySQL trong một mảng?

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

  1. 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ó
  2. 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

Làm cách nào để lưu trữ dữ liệu trong một mảng trong MySQL?

Cách dễ nhất để lưu trữ dữ liệu kiểu mảng trong MySQL là sử dụng kiểu dữ liệu JSON . Kiểu dữ liệu JSON lần đầu tiên được thêm vào phiên bản MySQL 5. 7. 8 và bạn có thể sử dụng loại để lưu trữ các mảng và đối tượng JSON. Hãy xem một ví dụ về việc sử dụng kiểu JSON trong MySQL.

Làm cách nào để sử dụng mảng trong truy vấn MySQL?

mysql> select *from PassingAnArrayDemo; Sau đây là kết quả. Sau đây là cú pháp để gửi một tham số mảng với sự trợ giúp của mệnh đề IN. mysql> CHỌN * -> TỪ PassingAnArrayDemo trong đó id IN(1,3,6);

Làm cách nào để lưu trữ kết quả truy vấn MySQL trong một biến trong tập lệnh shell?

Truy vấn SQL trả về một hàng (sqltest. sh) . /bin/bash c_ename=`sqlplus -s SCOTT/tiger@//YourIP. 1521/orcl << END đặt kích thước trang 0 phản hồi tắt xác minh tắt tiêu đề tắt tiếng vang tắt chọn ename từ emp trong đó empno = 7566; . "

Làm cách nào để lưu trữ các giá trị vào mảng từ cơ sở dữ liệu MySQL trong PHP?

Truyền mảng trong phương thức serialize() và truyền các giá trị được tuần tự hóa trong truy vấn INSERT . unserialize([Giá trị được tuần tự hóa]); .