KWALIFIKACJA INF3 - CZERWIEC 2022 (test 2)

PYTANIE NR 38.
Funkcja mysqli_num_rows() języka PHP może być wywołana po uprzednim zastosowaniu kwerendy
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
mysqli_num_rows() służy do ustalenia liczby wierszy w zbiorze wyników zwróconym przez zapytanie. Typowo dotyczy to kwerend zwracających wyniki do przeglądania, takich jak SELECT. Zapytania INSERT, UPDATE i DELETE modyfikują dane i zwykle nie zwracają zbioru wierszy.

Pełne wyjaśnienie:

Funkcja mysqli_num_rows() w PHP jest używana do uzyskania liczby wierszy w zbiorze wyników (tzw. result set). Oznacza to, że najpierw musi powstać obiekt wyniku zapytania, a dopiero potem można policzyć, ile rekordów zwróciła baza.

Zapytanie SELECT jest standardowym przykładem kwerendy, która zwraca wiersze (rekordy) spełniające warunki. Dlatego po wykonaniu SELECT i otrzymaniu wyniku można sensownie wywołać mysqli_num_rows(), aby np. sprawdzić, czy istnieją dane do wyświetlenia albo ile ich jest.

Odpowiedzi INSERT, UPDATE i DELETE dotyczą zapytań, które modyfikują dane w tabeli. Zwykle nie zwracają one listy rekordów do przeglądania, więc nie tworzą typowego zbioru wyników, dla którego liczy się liczbę wierszy funkcją mysqli_num_rows(). W takich przypadkach częściej interesuje nas liczba zmienionych wierszy, a nie liczba wierszy w wyniku kwerendy.

  • Jeśli chcesz sprawdzić, czy coś istnieje w bazie przed dodaniem/edycją, najczęściej wykonujesz SELECT i liczysz wiersze.
  • Jeśli chcesz sprawdzić efekt modyfikacji (czy coś się zmieniło), patrzysz na informację o zmienionych rekordach, a nie na liczbę wierszy w zbiorze wyników.

Na egzaminie warto zapamiętać prostą zasadę: mysqli_num_rows() = liczenie rekordów zwróconych do odczytu, więc naturalnie łączy się z zapytaniami typu SELECT.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Funkcja mysqli_num_rows() zwraca liczbę wierszy w zbiorze wyników otrzymanym z bazy danych. Używa się jej po wykonaniu zapytania, które zwraca rekordy do odczytu (najczęściej SELECT), aby sprawdzić, ile wyników zwrócono.
Zbiór wyników do policzenia wierszy powstaje, gdy zapytanie zwraca rekordy. Najbardziej typowym przypadkiem jest SELECT. Zapytania modyfikujące dane (np. wstawianie, aktualizacja, usuwanie) zwykle nie zwracają listy rekordów, więc nie tworzą takiego wyniku.
INSERT służy do dodawania danych, a nie do zwracania listy rekordów. Po takim zapytaniu zwykle nie ma "tabeli wyników" z wierszami do policzenia. W praktyce po INSERT sprawdza się raczej, czy operacja się powiodła oraz ewentualnie jaki identyfikator rekordu został dodany.
Najczęściej nie jest to właściwe użycie, bo UPDATE i DELETE nie zwracają klasycznego zbioru rekordów do przeglądania. Te zapytania informują o modyfikacji danych. Jeśli chcesz ocenić efekt, typowo sprawdza się liczbę zmienionych/usuniętych wierszy innym mechanizmem niż liczenie wierszy wyniku.
Wykonujesz zapytanie SELECT, a następnie na otrzymanym wyniku używasz mysqli_num_rows(). Jeśli wynik to 0, oznacza to brak pasujących rekordów. To częsty wzorzec w wyszukiwarkach, logowaniu i panelach administracyjnych.
Częsty błąd to traktowanie mysqli_num_rows() jako funkcji do sprawdzania skutków modyfikacji danych (INSERT/UPDATE/DELETE). Uczniowie mylą "liczbę wierszy w wyniku SELECT" z "liczbą wierszy zmienionych w tabeli". Warto zawsze rozróżniać odczyt danych od ich modyfikacji.
Gdy zapytanie nie zwraca zbioru wyników (np. wstawiasz lub aktualizujesz dane), liczenie wierszy wyniku nie ma sensu. Wtedy sensowniejsze jest sprawdzanie powodzenia wykonania zapytania oraz informacji o tym, ile rekordów zostało zmienionych, zamiast liczby wierszy w "wyniku".
Nie zawsze. Do samego sprawdzenia istnienia danych często wystarczy zapytanie SELECT ograniczone do minimum (np. pobranie jednego rekordu) i sprawdzenie, czy cokolwiek zwrócono. Liczenie wszystkich wierszy może być mniej efektywne przy bardzo dużych zbiorach, zależnie od sposobu pobierania wyników.
Zapytania odczytu zwykle zaczynają się od SELECT i zwracają rekordy. Zapytania modyfikujące to m.in. dodawanie, aktualizowanie i usuwanie danych — ich celem jest zmiana zawartości tabel, a nie zwrot listy rekordów do wyświetlenia. To kluczowe rozróżnienie w zadaniach z PHP i baz danych.
Ćwicz pełny schemat: połączenie z bazą, wykonanie zapytania, obsługa wyniku oraz zamknięcie połączenia. Naucz się, które funkcje pracują na zbiorze wyników (odczyt), a które służą do kontroli operacji modyfikujących (zapis). To pozwala szybko eliminować błędne odpowiedzi na teście.
info

Statystycznie 56% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że mysqli_num_rows() służy do ustalenia liczby wierszy w zbiorze wyników zwróconym przez zapytanie.

Źródła:

  • PHP Manual: mysqli_num_rows — https://www.php.net/manual/en/mysqli-result.num-rows.php (dostęp: 2026-03-02)
  • PHP Manual: mysqli_query — https://www.php.net/manual/en/mysqli.query.php (dostęp: 2026-03-02)
  • MySQL 8.0 Reference Manual: SELECT Statement — https://dev.mysql.com/doc/refman/8.0/en/select.html (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja PHP: mysqli_num_rows() oraz mysqli_query()
  • Dokumentacja SQL/MySQL: składnia i działanie SELECT
  • Ćwiczenia praktyczne: tworzenie prostych zapytań SELECT i obsługa wyników w pętli

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego