Arkusz INF.03 : 2026 - styczeń - zad. 04 (php)
Oznaczenie: INF.03-04-26.01-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
- UWAGA!
- Numer, którym został podpisany arkusz egzaminacyjny (PESEL lub w przypadku jego braku numer paszportu) jest w zadaniu nazywany numerem zdającego.
Wykonaj aplikację internetową portalu dla maturzystów, wykorzystując pakiet XAMPP oraz edytor zaznaczający składnię.
Aby wykonać zadanie, należy zalogować się na konto Egzamin bez hasła. Na pulpicie znajduje się archiwum zip o nazwie PlikiSt202604 zabezpieczone hasłem: Z@Rok!Matur@
Archiwum należy rozpakować.
Na pulpicie konta Egzamin należy utworzyć folder. Jako nazwy folderu należy użyć numeru zdającego. Po skończonej pracy wszystkie wyniki należy zapisać w tym folderze.
Baza danych
Baza danych zawiera połączone relacją tabele przedstawione na Ilustracji 1. W tabeli maturzysta ujęto dane uczniów zdających maturę, w tabeli arkusz ujęto dane opisujące egzamin (rok zdawania, przedmiot, sesja lato / zima). Tabela wyniki opisuje ile punktów otrzymał maturzysta z danego egzaminu.
Ilustracja 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj następujące operacje na bazie danych:
- Utwórz bazę danych o nazwie
matura, z zestawem polskich znaków (np.utf8_polish_ci) - Z rozpakowanego archiwum zaimportuj tabele z pliku
egzamin.sqldo utworzonej bazy - Wykonaj zrzut ekranu po imporcie. Zapisz zrzut w formacie
JPEGpod nazwąimport. Nie kadruj zrzutu. Powinien on obejmować cały ekran monitora, z widocznym paskiem zadań. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import tabel - Wykonaj
zapytania SQLdziałające na baziematura. Zapytania zapisz w plikukwerendy.txt. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formaciePNGi nadaj im nazwykw1,kw2,kw3,kw4,kw5. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- Zapytanie 1: wybierające jedynie
id,imięinazwiskomaturzystów ze szkoły„T3”, posortowanerosnącowedługnazwiska - Zapytanie 2: wybierające jedynie
nazwyprzedmiotów maturalnych z tabeliarkusz. Nazwy przedmiotów nie mogą się powtarzać - Zapytanie 3: wybierające jedynie
rokdlanajstarszegoinajmłodszegoarkusza maturalnego - Zapytanie 4: wybierające jedynie
id maturzystyorazśredniąze wszystkich punktów otrzymanych przez tego maturzystę. Średnia punktów manazwę kolumny(alias) „Wynik”. Dane należy posortowaćmalejącowedług obliczonejśrednieji wyświetlić tylko1 rekord. (Zapytanie grupujące, które wybiera maturzystę z najlepszym średnim wynikiem punktów) - Zapytanie 5: wybierające jedynie
rok,sesjęiprzedmiotz tabeliarkuszoraz odpowiadające temupunktyz tabeliwynikdla id maturzysty31. Należy posłużyć sięrelacją
- Zapytanie 1: wybierające jedynie
Witryna internetowa
Ilustracja 2. Wygląd witryny internetowej, strona index.php, kursor na uczniu

Cechy witryny:
- Składa się ze stron
index.phpiwynik.php
Cechy wspólne dla obu stron:
- Zapisane w języku
HTML5 - Zadeklarowany
polskijęzyk zawartości witryny - Jawnie zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony „Matura”
- Arkusz stylów w pliku o nazwie
styl.cssprawidłowo połączony z kodem strony - Podział strony na bloki zrealizowany za pomocą
semantycznych znacznikówbloków językaHTML5tak, aby po uruchomieniu w przeglądarce układ bloków na stronie był zgodny zIlustracją 3
Ilustracja 3. Układ bloków

- Zawartość bloku nagłówkowego: nagłówek
pierwszegostopnia o treści „System informacji dla maturzystów” - Zawartość bloku bocznego trzy grafiki:
ma.jpg, poniżejtu.jpg,poniżejra.jpg, każda z tekstem alternatywnym „Matura” - Zawartość drugiego bloku sekcji (
Ilustracja 2):- Cztery bloki, w każdym nagłówek
czwartegostopnia o treści, kolejno „Przedmioty”, „Lata”, "Najlepszy wynik”, „Najgorszy wynik” - W każdym bloku efekt działania
skryptu 1 - Wszystkie bloki mają przypisaną tę samą klasę
- Cztery bloki, w każdym nagłówek
- Zawartość stopki: paragraf o treści „Stronę wykonał: ”, dalej wstawiony
numer zdającego
Zawartość pierwszego bloku sekcji dla strony index.php:
- Nagłówek
trzeciegostopnia o treści: „Wybierz ucznia z listy:” - Efekt działania
skryptu 2
Zawartość pierwszego bloku sekcji dla strony wynik.php:
- Efekt działania
skryptu 3
Styl CSS witryny internetowej
Styl CSS zdefiniowany jest w całości w zewnętrznym pliku o nazwie styl.css W Tabeli 2 zawarto pomoc do niektórych właściwości CSS. Cechy formatowania CSS, działające na stronie:
- Dla selektora ciała strony: krój czcionki
cursive, w przypadku brakusans-serif, kolor tła#4682B4 - Wspólne dla bloków nagłówkowego i stopki: kolor tła
#0F0F64,białykolor czcionki, wyrównanie tekstudo środka, marginesy wewnętrzne3 px - Dla bloku bocznego: szerokość
20%, wysokość500 px - Wspólne dla bloków sekcji: szerokość
80%, wysokość250 px, paski przewijania tylko w przypadku przepełnienia - Dla selektora obrazu: szerokość
150 px, marginesy wewnętrzne2 px - Dla selektora nagłówka czwartego stopnia: wyrównanie tekstu
do środka - Dla selektora odnośnika:
białykolor czcionki, tekstbez podkreślenia - Gdy kursor znajdzie się na odnośniku jego kolor tła zmienia się na
#12538A(jak naIlustracji 2) - Dla klasy przypisanej do bloków z drugiego bloku sekcji: kolor tła
#2B6BA0,białykolor czcionki, szerokość i wysokość150 px, marginesy zewnętrzne10 px, wewnętrzne5 px, zaokrąglenie rogów10 px, cień bloku o przesunięciu3 pxw obu osiach, rozmyciu5 pxi kolorze czarnym, bloki powinny być ustawione obok siebie
- UWAGA!
- Styl CSS ciała strony, obrazu, nagłówka czwartego stopnia i odnośnika należy zdefiniować wyłącznie przy pomocy selektora tego znacznika. Jest to uwarunkowane projektem późniejszej rozbudowy witryny.
Skrypt połączenia z bazą
W Tabeli 1 zamieszczono wybrane funkcje PHP do obsługi bazy danych. Wymagania dotyczące skryptów:
- Napisane w języku PHP
- Należy stosować znaczące nazewnictwo zmiennych i funkcji w języku polskim lub angielskim
- Łączą się z serwerem bazodanowym na
localhost, użytkownikrootbez hasła, baza danych o nazwiematura - Na końcu zamykane jest połączenie z serwerem
Skrypt 1
- W bloku „Przedmioty”
- Wysyła do bazy danych
zapytanie 2 - Wyświetla dane zwrócone zapytaniem oddzielone
spacją
- Wysyła do bazy danych
- W bloku "Lata”
- Wysyła do bazy danych
zapytanie 3 - Wyświetla dane zwrócone zapytaniem oddzielone
spacjamiimyślnikiem
- Wysyła do bazy danych
- W bloku „Najlepszy wynik”
- Wysyła do bazy danych
zapytanie 4 - Wyświetla daną zwróconą zapytaniem
- Za wynikiem wstawiony znak
%
- Wysyła do bazy danych
- W bloku „Najgorszy wynik”
- Wysyła do bazy danych zmodyfikowane
zapytanie 4(należy zmienić sposób sortowania narosnący) - Wyświetla daną zwróconą zapytaniem
- Za wynikiem wstawiony znak
%
- Wysyła do bazy danych zmodyfikowane
Skrypt 2, w pliku index.php
- Wysyła do bazy
zapytanie 1 - Dla każdego zwróconego wiersza definiuje odnośnik o cechach
- treść: „<id>. <imie> <nazwisko>”, gdzie pola <> są zwrócone z bazy (jak na
Ilustracji 2) - adres: strona
wynik.phpi przesłane metodąGETparametryid,imięinazwiskozwrócone z bazy
- treść: „<id>. <imie> <nazwisko>”, gdzie pola <> są zwrócone z bazy (jak na
Skrypt 3, w pliku wynik.php (Ilustracja 4)
- W nagłówku
drugiegostopnia wyświetlaimięinazwisko, które zostało przesłane do strony metodąGET - Wysyła do bazy danych zmodyfikowane
zapytanie 5, tak że wybierane są dane dla ucznia oidprzesłanym do strony metodąGET - Dla każdego wiersza zwróconego z bazy wyświetla:
- W nagłówku
trzeciegostopniarokisesjęoddzielonespacją - W paragrafie
nazwęprzedmiotu ipunktyoddzielonedwukropkiemispacją
- W nagłówku
Ilustracja 4. Strona wynik.php dla wybranego na stronie index.php ucznia Aleksandra Kosińskiego

Tabela 1. Wybór funkcji języka PHP do obsługi bazy MySQL i MariaDB
| Funkcje bilioteki mysqli | Zwracana wartość |
|---|---|
| mysqli_connect(serwer, uzytkownik, haslo, nazwa_bazy) | id połączenia lub FALSE, gdy niepowodzenie |
| mysqli_select_db(id_polaczenia, nazwa_bazy) | TRUE / FALSE, w zależności od stanu operacji |
| mysqli_error(id_polaczenia) | Tekst komunikatu błędu |
| mysqli_close(id_polaczenia) | TRUE / FALSE, w zależności od stanu operacji |
| mysqli_query(id_polaczenia, zapytanie) | Wynik zapytania |
| mysqli_fetch_row(wynik_zapytania) | Tablica numeryczna odpowiadająca wierszowi zapytania |
| mysqli_fetch_array(wynik_zapytania) | Tablica zawierająca kolejny wiersz z podanych w wyniku zapytania lub FALSE, jeżeli nie ma więcej wierszy w wyniku zapytania |
| mysqli_num_rows(wynik_zapytania) | Liczba wierszy w podanym zapytaniu |
| mysqli_num_fields (wynik_zapytania) | Liczba kolumn w podanym zapytaniu |
| isset($zmienna) | Sprawdzenie, czy $zmienna istnieje |
Przykład Przesyłania danych między stronami za pomocą odnośników

Tabela 2. Wybrane właściwości CSS
| Właściwość | Opis |
|---|---|
|
box-shadow: h-offset v-offset blur spread color inset; The inset parameter changes the shadow from an outer shadow (outset) to an inner shadow. |
cień bloku |
| text-shadow: h-shadow v-shadow blur-radius color; | cień tekstu |
Tabela 3. Semantic Elements in HTML
| Tag | Description |
|---|---|
| <article> | Defines independent, self-contained content |
| <aside> | Defines content aside from the page content |
| <details> | Defines additional details that the user can view or hide |
| <figcaption> | Defines a caption for a <figure> element |
| <figure> | Specifies self-contained content, like illustrations, diagrams, photos, code listings, etc. |
| <footer> | Defines a footer for a document or section |
| <header> | Specifies a header for a document or section |
| <main> | Specifies the main content of a document |
| <mark> | Defines marked/highlighted text |
| <nav> | Defines navigation links |
| <section> | Defines a section in a document |
| <summary> | Defines a visible heading for a <details> element |
| <time> | Defines a date/time |
- UWAGA!
- Po zakończeniu pracy utwórz plik tekstowy o nazwie przeglądarka.txt. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowana była poprawność działania witryny. Umieść go w folderze z numerem zdającego.
- Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego, powinny znajdować się pliki: import.jpg, index.php, kw1.png, kw2.png, kw3.png, kw4.png, kw5.png, kwerendy.txt, ma.jpg, przeglądarka.txt, ra.jpg, styl.css, tu.jpg, wynik.php, ewentualnie inne przygotowane pliki. Po nagraniu płyty sprawdź poprawność jej odczytu. Opisz płytę numerem zdającego i pozostaw zapakowaną w pudełku na stanowisku wraz z arkuszem egzaminacyjnym.
Czas przeznaczony na wykonanie zadania wynosi 150 minut.
Ocenie podlegać będzie 5 rezultatów:
- operacje na bazie danych
- zawartość witryny internetowej
- działanie witryny internetowej
- styl CSS witryny internetowej
- skrypt połączenia z bazą.

Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!
Kody zniżkowe - kup taniej
Mamy fajne rabaty dla widzów naszego kanału YouTube - otóż można zamówić dwa tomy książek "Wprowadzenie do bezpieczeństwa IT" (15% taniej) oraz książkę "Twierdza Linux. Bezpieczeństwo dla dociekliwych" (10% taniej) - użyjcie odpowiedniego kodu, wpisując go w specjalne pole w koszyku:
KOD: pasja
Dostajesz rabat -15%
KOD: pasja
Dostajesz rabat -15%
KOD: pasja-linux
Dostajesz rabat -10%
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Proszę, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!