Przejdź do głównej treści
  1. Strona główna
  2. Słownik
  3. INF.03
  4. mysql_num_rows() w PHP

mysql_num_rows() w PHP

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

Co robi mysql_num_rows()?

mysql_num_rows() to dawna funkcja PHP z rozszerzenia mysql, która zwraca liczbę wierszy znajdujących się w wyniku zapytania SQL. Najczęściej używano jej po wykonaniu zapytania typu SELECT, aby sprawdzić, ile rekordów spełnia warunki zapytania.

Składnia

$wynik = mysql_query('SELECT * FROM uzytkownicy');
$liczba = mysql_num_rows($wynik);

W zmiennej $liczba znajdzie się liczba rekordów zwróconych przez zapytanie.

Przykład zastosowania

$wynik = mysql_query('SELECT * FROM uzytkownicy WHERE login = ' . $login);

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

Funkcja nie pobiera rekordu, nie przechodzi do następnego wyniku i nie numeruje rekordów w bazie. Jej zadaniem jest wyłącznie zwrócenie liczby wierszy w rezultacie zapytania.

Ważne na egzaminie

Poprawne znaczenie funkcji mysql_num_rows() to: zwraca ilość wierszy znajdujących się w rezultacie zapytania.

Uwaga praktyczna

Rozszerzenie mysql jest przestarzałe i zostało usunięte w PHP 7. W nowoczesnym PHP należy używać mysqli albo PDO.

Odpowiednik w mysqli:

$wynik = mysqli_query($polaczenie, 'SELECT * FROM uzytkownicy');
echo mysqli_num_rows($wynik);

Do samego policzenia rekordów w bazie często lepsze jest zapytanie SQL z COUNT(*), np. SELECT COUNT(*) FROM uzytkownicy.