mysqli_fetch_row() w PHP
mysqli_fetch_row() to funkcja PHP używana przy pracy z bazą danych MySQL przez rozszerzenie MySQLi. Służy do pobrania jednego wiersza z wyniku zapytania SQL jako tablicy indeksowanej numerycznie.
Składnia
$wiersz = mysqli_fetch_row($wynik);
Parametr $wynik to rezultat zwrócony przez mysqli_query(), najczęściej po wykonaniu zapytania SELECT.
Jak działa?
Każde wywołanie mysqli_fetch_row() pobiera kolejny wiersz z zestawu wyników. Dane w tablicy są dostępne przez indeksy liczbowe:
$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$wiersz = mysqli_fetch_row($zapytanie);
echo $wiersz[0]; // imię
echo $wiersz[1]; // nazwisko
Jeżeli zapytanie zwraca kolumny imie i nazwisko, to:
$wiersz[0]oznacza wartość z pierwszej kolumny,$wiersz[1]oznacza wartość z drugiej kolumny.
Przykład z pętlą
$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) {
$wiersz = mysqli_fetch_row($zapytanie);
echo "$wiersz[0] $wiersz[1]";
}
W takim kodzie poprawnym poleceniem w miejscu pobierania danych jest właśnie mysqli_fetch_row($zapytanie);.
Częsty błąd egzaminacyjny
Nie należy mylić tej funkcji z:
mysqli_num_rows()— zwraca liczbę wierszy wyniku,mysqli_num_fields()— zwraca liczbę kolumn,mysqli_free_result()— zwalnia pamięć zajętą przez wynik,mysqli_query()— wykonuje zapytanie SQL.
mysqli_fetch_row() jest używane wtedy, gdy trzeba odczytać dane z kolejnych rekordów wyniku zapytania.