Ho un problema con il set di risultati mysqli. Ho una tabella che contiene un sacco di messaggi. Ogni riga della tabella rappresenta un messaggio. Ho alcune colonne come ID, titolo, corpo e "pubblico". La colonna pubblica contiene booleani, che specificano se il messaggio deve essere mostrato a tutti, o solo alla persona che lo ha pubblicato. Ho una pagina in cui voglio visualizzare tutti i messaggi pubblici e, se fai clic su un messaggio, ottieni una pagina con il singolo messaggio e alcune opzioni extra. Per fare questo, voglio caricare il risultato di una query mysqli in una matrice bidimensionale. Ciò significherebbe una serie di messaggi e ogni messaggio è una matrice su se stesso con ID, titolo, corpo ecc. Come colonne.Come caricare il set di risultati MySQLi in un array bidimensionale?
Così ho iniziato con il seguente codice. La variabile '$ link' contiene la connessione mysqli (la strega funziona bene).
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
$array = $result->fetch_assoc();
print_r($array);
Questo risulta solo in una matrice monodimensionale, con il messaggio più recente. Così ho provato il seguente ciclo while:
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
while($message = $result->fetch_assoc()){
$title = $message['title'];
$body = $message['body'];
# etc...
}
Questo funziona in un modo: Visualizza tutti i messaggi, ma non li mette in un array (strega che voglio per l'esecuzione di attività sulla base di ID, e la posizione del array di messaggi nell'array di contenimento. Qualcuno sa come convertire questo tipo di risultato di una query in una bella matrice bidimensionale? O un modo totalmente diverso e elegante di fare questo? Grazie in anticipo.
PS. Scusa per il mio inglese, non sono madrelingua.
Grazie per questa risposta! mi ha aiutato molto! –
Gli esempi hanno funzionato, ma potrebbero essere più chiari se si utilizzassero nomi di variabili diversi da più di un carattere ... ** $ messaggio ** e ** $ messaggi ** –