Tôi gặp sự cố với tập hợp kết quả mysqli. Tôi có một bảng có chứa một loạt các tin nhắn. Mỗi hàng trong bảng biểu thị một thông báo. Tôi có một vài cột như ID, tiêu đề, nội dung và 'công khai'. Cột công khai chứa các boolean, chỉ định nếu thông báo được hiển thị cho tất cả mọi người, hoặc chỉ cho người đã đăng nó. Tôi có một trang mà tôi muốn hiển thị tất cả các tin nhắn công cộng, và nếu bạn bấm vào một tin nhắn, bạn sẽ nhận được một trang với một tin nhắn duy nhất, và một số tùy chọn bổ sung. Để làm điều này, tôi muốn tải kết quả của một truy vấn mysqli vào một mảng hai chiều. Điều đó có nghĩa là một mảng các thông báo, và mỗi thông điệp là một mảng trên chính nó với ID, tiêu đề, nội dung, vv .. như các cột.Làm thế nào để tải kết quả MySQLi được đặt thành mảng hai chiều?
Vì vậy, tôi đã bắt đầu với mã sau đây. Biến '$ link' chứa kết nối mysqli (phù thủy hoạt động tốt).
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
$array = $result->fetch_assoc();
print_r($array);
Điều này chỉ dẫn đến mảng một chiều, với thông điệp mới nhất trong đó. Vì vậy, tôi đã cố gắng lặp while sau:
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
while($message = $result->fetch_assoc()){
$title = $message['title'];
$body = $message['body'];
# etc...
}
này hoạt động theo một cách: Nó hiển thị tất cả các thư, nhưng không đặt chúng trong một mảng (phù thủy Tôi muốn cho thực hiện nhiệm vụ dựa trên ID, và vị trí của các mảng tin nhắn trong mảng chứa.) Có ai biết cách chuyển đổi loại kết quả truy vấn này thành mảng hai chiều đẹp không? Hoặc một cách hoàn toàn khác, tiện lợi để đi về điều này? Cảm ơn trước.
PS. Xin lỗi vì tiếng Anh của tôi, tôi không phải là người bản ngữ.
Cảm ơn bạn đã trả lời câu trả lời này! đã giúp tôi rất nhiều! –
Ví dụ của bạn đã hoạt động nhưng có thể rõ ràng hơn nếu bạn sử dụng các tên biến khác nhau nhiều hơn một ký tự ... ** $ message ** và ** $ messages ** –