Funkcja mysqli_num_rows() w PHP

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

Do czego służy mysqli_num_rows()?

mysqli_num_rows() to funkcja PHP używana przy pracy z bazą danych MySQL za pomocą rozszerzenia MySQLi. Służy do zwrócenia liczby wierszy znajdujących się w wyniku zapytania.

Najczęściej używa się jej po wykonaniu zapytania typu SELECT, aby sprawdzić, ile rekordów spełnia warunki zapytania.

Składnia

mysqli_num_rows($wynik);

Parametr $wynik to rezultat zapytania zwrócony np. przez funkcję mysqli_query().

Przykład

$polaczenie = mysqli_connect("localhost", "root", "", "sklep");

$wynik = mysqli_query($polaczenie, "SELECT * FROM produkty");

$liczba = mysqli_num_rows($wynik);

echo "Liczba produktów: " . $liczba;

Jeżeli tabela produkty zawiera 10 rekordów, funkcja zwróci wartość 10.

Typowe zastosowania

  • sprawdzenie, czy zapytanie zwróciło jakiekolwiek dane,
  • policzenie rekordów w wyniku zapytania,
  • obsługa sytuacji typu „brak wyników”,
  • walidacja logowania użytkownika.

Przykład sprawdzenia, czy istnieje użytkownik:

$wynik = mysqli_query($polaczenie, "SELECT * FROM users WHERE login='jan'");

if (mysqli_num_rows($wynik) > 0) {
    echo "Użytkownik istnieje";
} else {
    echo "Brak użytkownika";
}

Ważne rozróżnienie

mysqli_num_rows() nie pobiera kolejnego rekordu. Do tego służą funkcje takie jak mysqli_fetch_assoc() lub mysqli_fetch_array().

Nie należy też mylić jej z SQL-owym COUNT(*). Funkcja mysqli_num_rows() liczy wiersze już zwrócone przez zapytanie, a COUNT(*) zlicza rekordy bezpośrednio po stronie bazy danych.