mysqli_num_rows() w PHP
mysqli_num_rows() to funkcja PHP z rozszerzenia MySQLi, która zwraca liczbę wierszy znajdujących się w wyniku zapytania SQL.
Składnia
$liczba = mysqli_num_rows($wynik);
Parametr $wynik jest rezultatem działania funkcji mysqli_query(), zwykle dla zapytania typu SELECT.
Przykład
$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);
echo "Liczba użytkowników: $ile";
Jeżeli zapytanie zwróci 5 rekordów, zmienna $ile będzie miała wartość 5.
Zastosowanie w pętli
Funkcja często pojawia się przed pętlą, aby określić, ile razy należy pobrać kolejny wiersz wyniku:
$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 tym przykładzie mysqli_num_rows() nie pobiera danych z bazy, lecz tylko informuje, ile rekordów znajduje się w wyniku.
Ważne rozróżnienie
mysqli_num_rows()— podaje liczbę rekordów,mysqli_fetch_row()— pobiera konkretny rekord,mysqli_num_fields()— podaje liczbę kolumn,mysqli_query()— wykonuje zapytanie SQL.
Na egzaminie INF.03 często trzeba rozpoznać, czy w danym miejscu kodu należy policzyć rekordy, czy pobrać kolejny wiersz. Jeśli później występuje odwołanie typu $wiersz[0], oznacza to, że wcześniej trzeba pobrać wiersz, np. przez mysqli_fetch_row().