У меня проблема с набором результатов 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. Извините за мой английский, я не носитель языка.