mysqli_fetch_row() w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest mysqli_fetch_row()?

mysqli_fetch_row() to funkcja PHP służąca do pobierania kolejnych wierszy wyniku zapytania SQL wykonanego za pomocą rozszerzenia MySQLi.

Funkcja zwraca jeden rekord jako tablicę indeksowaną numerycznie. Oznacza to, że kolumny są dostępne przez indeksy: 0, 1, 2 itd.

Składnia

mysqli_fetch_row($wynik);

Gdzie $wynik to rezultat zapytania, najczęściej zwrócony przez mysqli_query().

Przykład użycia

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");

while ($wiersz = mysqli_fetch_row($tab)) {
    echo $wiersz[0] . "<br>";
}

W tym przykładzie zapytanie zwraca imiona osób młodszych niż 18 lat. Funkcja mysqli_fetch_row() pobiera kolejne wiersze wyniku, a pętla while działa tak długo, jak istnieją następne rekordy.

Dlaczego potrzebna jest pętla?

Samo wykonanie zapytania przez mysqli_query() nie wyświetla danych. Zwraca jedynie wynik zapytania. Aby pokazać wszystkie rekordy, trzeba je kolejno odczytać, np. właśnie za pomocą mysqli_fetch_row() w pętli.

Ważne na egzaminie

Jeśli zapytanie SQL może zwrócić wiele rekordów, poprawnym sposobem ich wyświetlenia jest użycie pętli, np.:

while ($row = mysqli_fetch_row($result)) {
    echo $row[0];
}

Nie wystarczy wyświetlić zmiennej z wynikiem zapytania, ponieważ nie zawiera ona gotowego tekstu do pokazania użytkownikowi.