У меня проблема с набором результатов mysqli. У меня есть таблица, которая содержит кучу сообщений. Каждая строка таблицы представляет одно сообщение. У меня есть несколько столбцов, таких как ID, заголовок, тело и «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. Извините за мой английский, я не являюсь носителем языка.