mysqli_num_rows() w PHP

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

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().