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.