omo carregar o conjunto de resultados MySQLi em um array bidimensiona
Eu tenho um problema com o conjunto de resultados do mysqli. Eu tenho uma tabela que contém um monte de mensagens. Cada linha da tabela representa uma mensagem. Eu tenho algumas colunas como ID, título, corpo e 'público'. A coluna pública contém booleanos, que especificam se a mensagem deve ser exibida para todos ou apenas para a pessoa que a postou. Eu tenho uma página na qual desejo exibir todas as mensagens públicas e, se você clicar em uma mensagem, receberá uma página com a mensagem única e algumas opções extras. Para fazer isso, quero carregar o resultado de uma consulta mysqli em um array bidimensional. Isso significaria uma matriz de mensagens, e cada mensagem é uma matriz em si com o ID, título, corpo etc. como coluna
Então comecei com o código a seguir. A variável '$ link' contém a conexão mysqli (o que funciona bem).
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
$array = $result->fetch_assoc();
print_r($array);
Isso resulta apenas em uma matriz unidimensional, com a última mensagem. Então, tentei o seguinte loop while:
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
while($message = $result->fetch_assoc()){
$title = $message['title'];
$body = $message['body'];
# etc...
}
Isso funciona da seguinte maneira: exibe todas as mensagens, mas não as coloca em uma matriz (o que eu quero para executar tarefas baseadas em ID e a posição da matriz de mensagens na matriz que contém). Alguém sabe como converter esse tipo de consulta resulta em uma boa matriz bidimensional? Ou uma maneira totalmente diferente e bacana de fazer isso? Desde já, obrigado
PS. Desculpe pelo meu inglês, eu não sou um falante nativo.