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.