Как загрузить набор результатов MySQLi в двумерный массив?

У меня проблема с набором результатов mysqli. У меня есть таблица, содержащая кучу сообщений. Каждая строка таблицы представляет одно сообщение. У меня есть несколько столбцов, таких как ID, title, body и public.Общедоступный столбец содержит логические значения, указывающие, должно ли сообщение отображаться для всех или только для человека, который его опубликовал. У меня есть страница, на которой я хочу отображать все общедоступные сообщения, и если вы нажмете на сообщение, вы получите страницу с одним сообщением и некоторыми дополнительными параметрами. Для этого я хочу загрузить результат запроса mysqli в двухмерный массив. Это будет означать массив сообщений, а каждое сообщение представляет собой массив с идентификатором, заголовком, телом и т. Д. В виде столбцов.

Итак, я начал со следующего кода. Переменная $ link содержит соединение mysqli (ведьма прекрасно работает).

$result = $link->query("SELECT * FROM messages WHERE public = '1'");
$array = $result->fetch_assoc();

print_r($array);

Результатом является только одномерный массив с последним сообщением в нем. Итак, я попробовал следующий цикл while:

$result = $link->query("SELECT * FROM messages WHERE public = '1'");

while($message = $result->fetch_assoc()){
 $title = $message['title'];
 $body = $message['body'];
 # etc... 
}

Это работает следующим образом: он отображает все сообщения, но не помещает их в массив (ведь я хочу выполнять задачи на основе идентификатора и позиции массива сообщений в содержащий массив.) Кто-нибудь знает, как преобразовать такой результат запроса в красивый двумерный массив? Или совершенно другой, изящный способ сделать это? Заранее спасибо.

PS. Извините за мой английский, я не носитель языка.

5
задан Stefan Hagen 13 January 2012 в 10:38
поделиться