Mam problem z zestawem wyników mysqli. Mam tabelę zawierającą kilka wiadomości. Każdy wiersz tabeli reprezentuje jedną wiadomość. Mam kilka kolumn, takich jak ID, tytuł, treść i "public". Publiczna kolumna zawiera wartości logiczne określające, czy wiadomość ma być wyświetlana wszystkim, czy tylko osobie, która ją opublikowała. Mam stronę, na której chcę wyświetlić wszystkie publiczne wiadomości, a po kliknięciu wiadomości pojawi się strona z pojedynczą wiadomością i kilkoma dodatkowymi opcjami. Aby to zrobić, chcę załadować wynik zapytania mysqli do tablicy dwuwymiarowej. Oznaczałoby to tablicę wiadomości, a każda wiadomość jest tablicą samą w sobie z identyfikatorem, tytułem, treścią itp. Jako kolumnami.Jak załadować zestaw wyników MySQLi do dwuwymiarowej tablicy?
Zacząłem od następującego kodu. Zmienna $ link zawiera połączenie mysqli (działa poprawnie).
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
$array = $result->fetch_assoc();
print_r($array);
Powoduje to tylko jednowymiarową tablicę z najnowszym komunikatem. Tak próbowałem następujące pętli while:
$result = $link->query("SELECT * FROM messages WHERE public = '1'");
while($message = $result->fetch_assoc()){
$title = $message['title'];
$body = $message['body'];
# etc...
}
Działa to w ten sposób: Wyświetla wszystkie wiadomości, ale nie umieścić je w tablicy (czarownica chcę do wykonywania zadań na podstawie identyfikatora, a pozycja tablica wiadomości w tablicy zawierającej.) Czy ktokolwiek wie, jak przekonwertować ten wynik kwerendy do ładnej, dwuwymiarowej tablicy? Lub zupełnie inny, zręczny sposób, aby o tym poradzić? Z góry dziękuję.
PS. Przepraszam za mój angielski, nie jestem native speakerem.
Dziękuję za tę odpowiedź! bardzo mi pomogło! –
Twoje przykłady zadziałały, ale mogą być bardziej przejrzyste, jeśli użyjesz nazw zmiennych różniących się o więcej niż jeden znak ... ** $ wiadomość ** i ** $ wiadomość ** –