W MySQLi funkcja mysqli_fetch_row() pobiera jeden wiersz z wyniku zapytania i zwraca go jako tablicę indeksowaną numerycznie. To oznacza, że do wartości odwołujemy się indeksami 0, 1, 2..., a nie nazwami kolumn.
Kluczowe jest mapowanie indeksów na kolumny: indeksy odpowiadają kolejności pól w zapytaniu SELECT. Jeżeli zapytanie ma postać: SELECT ulica, miasto, kod_pocztowy ..., to w zwróconym wierszu:
- pod indeksem 0 znajduje się wartość z kolumny ulica,
- pod indeksem 1 znajduje się wartość z kolumny miasto,
- pod indeksem 2 znajduje się wartość z kolumny kod_pocztowy.
Instrukcja echo wypisuje dokładnie te elementy tablicy, które zostały wskazane w kodzie. Skoro wypisywane są $a[1] oraz $a[2], wynikiem będą: miasto i kod pocztowy.
Pozostałe odpowiedzi są niepoprawne z dwóch typowych powodów:
- Opcje z "ulicą" są błędne, bo w echo nie ma $a[0], czyli pierwszej kolumny.
- Opcje "ze wszystkich rekordów" są błędne, bo bez pętli (np. while) funkcja fetch jest wywołana tylko raz, więc pobierany i wypisywany jest wyłącznie pierwszy zwrócony wiersz. Aby przetworzyć wszystkie rekordy, trzeba iterować po wyniku zapytania.
Na egzaminie warto pamiętać o dwóch regułach: tablice numeryczne w PHP zaczynają się od 0 oraz jedno wywołanie fetch = jeden rekord.