Tengo un problema con el conjunto de resultados mysqli. Tengo una tabla que contiene un montón de mensajes. Cada fila de la tabla representa un mensaje. Tengo algunas columnas como ID, título, cuerpo y 'público'. La columna pública contiene booleanos, que especifican si el mensaje debe mostrarse a todos, o solo a la persona que lo publicó. Tengo una página donde quiero mostrar todos los mensajes públicos, y si haces clic en un mensaje, obtienes una página con el mensaje único y algunas opciones adicionales. Para hacer esto, quiero cargar el resultado de una consulta mysqli en una matriz bidimensional. Eso significaría una matriz de mensajes, y cada mensaje es una matriz en sí misma con la ID, el título, el cuerpo, etc. como columnas.¿Cómo cargar el conjunto de resultados MySQLi en una matriz bidimensional?
Así que comencé con el siguiente código. La variable '$ link' contiene la conexión mysqli (la bruja funciona bien).
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
$array = $result->fetch_assoc();
print_r($array);
Esto sólo da lugar a una matriz unidimensional, con el último mensaje en él. Así que probé el siguiente bucle while:
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
while($message = $result->fetch_assoc()){
$title = $message['title'];
$body = $message['body'];
# etc...
}
Esto funciona de una manera: Muestra todos los mensajes, pero no las pone en una matriz (bruja que quiero para la realización de tareas basado en ID, y la posición de la matriz de mensajes en la matriz que contiene.) ¿Alguien sabe cómo convertir este tipo de resultados de la consulta en una buena matriz bidimensional? ¿O una forma totalmente diferente e ingeniosa de hacer esto? Gracias por adelantado.
PS. Perdón por mi inglés, no soy un hablante nativo.
¡Gracias por esta respuesta! ¡me ayudo mucho! –
Sus ejemplos funcionaron, pero podrían ser más claros si utiliza nombres de variables que difieren en más de un carácter ... ** $ mensaje ** y ** $ mensajes ** –