KWALIFIKACJA INF3 - CZERWIEC 2024 (test 2)

PYTANIE NR 26.
W aplikacji PHP przesłano do bazy kwerendę SELECT za pomocą funkcji
mysqli_query 
. Którą funkcję powinien zastosować użytkownik, aby sprawdzić ile rekordów zwróciło zapytanie?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja mysqli_num_rows() zwraca liczbę wierszy w obiekcie wyniku zapytania SELECT wykonanym przez mysqli_query(). Stosuje się ją po otrzymaniu wyniku, aby sprawdzić, ile rekordów spełniło warunek zapytania. Pozostałe funkcje służą do pobierania wiersza, łączenia lub wykonania kwerendy.

Pełne wyjaśnienie:

W przypadku zapytań typu SELECT wykonanych przez mysqli_query() otrzymuje się zwykle obiekt wyniku (tzw. result set). Aby sprawdzić, ile rekordów zwróciło zapytanie, należy użyć funkcji mysqli_num_rows(), która zwraca liczbę wierszy znajdujących się w tym zbiorze wyników.

To podejście jest typowe w aplikacjach internetowych: najpierw wykonuje się zapytanie, a następnie podejmuje decyzję, czy wyświetlać listę danych, komunikat "brak wyników", albo uruchomić dalszą logikę (np. paginację). Funkcja licząca wiersze jest więc elementem kontroli przepływu działania aplikacji.

Odpowiedź mysqli_fetch_row jest niepoprawna, ponieważ służy do pobrania pojedynczego wiersza z wyniku (jako tablicy numerycznej), a nie do ustalenia całkowitej liczby rekordów. Użycie jej nie daje bezpośrednio informacji "ile jest wszystkich wierszy".

Odpowiedź mysqli_connect jest niepoprawna, bo dotyczy nawiązania połączenia z bazą danych. Nie pracuje na obiekcie wyniku zapytania i nie służy do analizy rezultatów SELECT.

Odpowiedź mysqli_query jest niepoprawna, ponieważ ta funkcja odpowiada za wykonanie zapytania. W kontekście pytania zapytanie zostało już wykonane, a wymagane jest użycie funkcji do sprawdzenia rozmiaru zwróconego wyniku, czyli liczby rekordów.

Wskazówka egzaminacyjna: warto kojarzyć prefiksy nazw funkcji: query (uruchom zapytanie), num_rows (policz wiersze), fetch (pobierz wiersz), connect (połącz się). To pomaga dobrać funkcję do właściwego etapu pracy.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Zwraca liczbę wierszy (rekordów) znajdujących się w zbiorze wyników zapytania, najczęściej po wykonaniu SELECT. Używa się jej, gdy masz już obiekt wyniku i chcesz sprawdzić, czy są dane oraz ile ich jest.
Po wykonaniu zapytania SELECT przez mysqli_query() użyj mysqli_num_rows() na otrzymanym wyniku. Dzięki temu dostaniesz liczbę rekordów spełniających warunki zapytania i możesz np. wyświetlić komunikat "brak wyników".
mysqli_fetch_row() pobiera pojedynczy wiersz z wyniku (jedną "linię" danych). To operacja odczytu, a nie zliczania. Sama w sobie nie mówi, ile jest wszystkich rekordów w wyniku, tylko zwraca kolejne wiersze.
mysqli_query() stosuje się do wykonania zapytania SQL na bazie danych. Dla SELECT zwraca wynik (result set), a dla wielu zapytań modyfikujących dane zwraca informację o powodzeniu. Dopiero na wyniku SELECT wykonuje się dalsze operacje, np. zliczanie i pobieranie wierszy.
Najczęściej: nawiązujesz połączenie, wykonujesz SELECT, a potem pracujesz na wyniku: sprawdzasz liczbę rekordów, pobierasz wiersze w pętli i wyświetlasz dane. Rozdzielenie tych etapów pomaga unikać błędów i ułatwia debugowanie.
Częste błędy to mylenie funkcji (np. wybór fetch zamiast num_rows), używanie funkcji od połączenia zamiast od wyniku, albo zakładanie, że samo wykonanie zapytania "zna" liczbę rekordów. Warto pamiętać, że liczenie dotyczy wyniku, nie zapytania.
Nie. mysqli_connect() służy do utworzenia połączenia z serwerem bazy danych. Nie analizuje wyników zapytań. Liczbę rekordów sprawdza się dopiero po wykonaniu SELECT i otrzymaniu zbioru wyników.
Funkcje "połączeniowe" dotyczą tworzenia i utrzymania połączenia (np. connect). Funkcje "wynikowe" dotyczą pracy na rezultacie SELECT (np. num_rows, fetch_row). Na egzaminie zwracaj uwagę, czy pytanie dotyczy etapu: połączenie → zapytanie → wynik.
To oznacza, że zapytanie SELECT nie znalazło pasujących rekordów. W praktyce wyświetla się wtedy komunikat "brak danych", ukrywa tabelę wyników albo proponuje zmianę kryteriów wyszukiwania. To typowy przypadek obsługi pustego wyniku.
Przećwicz pełny przepływ: połączenie z bazą, wykonanie SELECT, sprawdzenie liczby rekordów i pobieranie danych w pętli. Rób krótkie zadania z wyświetlaniem listy wyników i warunkiem "jeśli 0 rekordów, pokaż komunikat". To najczęstszy schemat egzaminacyjny.
info

Około 59% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że funkcja mysqli_num_rows() zwraca liczbę wierszy w obiekcie wyniku zapytania SELECT wykonanym przez mysqli_query().

Źródła:

  • PHP Manual: mysqli_num_rows — Gets the number of rows in a result, https://www.php.net/manual/en/mysqli-result.num-rows.php - accessed 2026-03-01
  • PHP Manual: mysqli_query — Performs a query on the database, https://www.php.net/manual/en/mysqli.query.php - accessed 2026-03-01
  • PHP Manual: mysqli_fetch_row — Fetches one row of data from the result set, https://www.php.net/manual/en/mysqli-result.fetch-row.php - accessed 2026-03-01

Materiały:

  • Dokumentacja PHP: dział mysqli (opis pracy ze zbiorem wyników)
  • Ćwiczenia: wykonanie SELECT i obsługa result (mysqli_query, mysqli_num_rows, mysqli_fetch_row/assoc)
  • Materiały szkolne do INF.3: komunikacja aplikacji PHP z bazą danych i przetwarzanie wyników

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego