Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych PHP

W przedstawionym kodzie PHP w miejscu kropek powinno zostać umieszczone polecenie

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = ....................................;
for ($i = 0; $i < $ile; $i++)
{
    $wiersz = mysqli_fetch_row($zapytanie);
    echo "$wiersz[0] $wiersz[1]";
}
A.
mysqli_free_result($zapytanie)
B.
mysqli_num_fields($zapytanie)
C.
mysqli_num_rows($zapytanie)
D.
mysqli_fetch_row($zapytanie)
Polecenie mysqli_num_rows($zapytanie) jest właściwe, ponieważ zmienna $zapytanie przechowuje wynik zapytania SELECT, a ta funkcja zwraca liczbę wierszy znajdujących się w tym wyniku. Ta liczba jest zapisywana do $ile i używana w warunku pętli for: pętla ma wykonać się dokładnie tyle razy, ile rekordów zwróciła baza. W każdej iteracji mysqli_fetch_row($zapytanie) pobiera następny wiersz jako tablicę indeksowaną numerycznie, dlatego $wiersz[0] oznacza imię, a $wiersz[1] nazwisko. Do zapamiętania: składnia to mysqli_num_rows(wynik_zapytania) i dotyczy liczby rekordów, nie liczby kolumn. W praktyce używa się jej przed wyświetlaniem list, tabel wyników lub komunikatu o braku danych.
W tym fragmencie potrzebna jest liczba rekordów zwróconych przez zapytanie, bo zmienna $ile steruje liczbą obiegów pętli for. mysqli_free_result($zapytanie) służy do zwolnienia pamięci zajmowanej przez wynik zapytania. Takie polecenie stosuje się po zakończeniu pracy z wynikiem, a nie przed pobieraniem danych, bo po jego użyciu nie ma już z czego odczytywać wierszy. mysqli_num_fields($zapytanie) zwraca liczbę pól, czyli kolumn w wyniku. Dla zapytania wybierającego imie i nazwisko byłaby to wartość 2, niezależna od liczby użytkowników. mysqli_fetch_row($zapytanie) pobiera jeden wiersz jako tablicę i przesuwa wskaźnik wyniku na następny rekord; nie zwraca liczby wierszy, więc nie nadaje się do warunku $i < $ile. Poprawne polecenie to mysqli_num_rows($zapytanie). Typowy błąd polega na pomyleniu trzech pojęć: liczby wierszy, liczby kolumn oraz pobrania pojedynczego rekordu z wyniku.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.