Arkusz EE.09 : 2020 - styczeń - zad. 01 (php)

Oznaczenie: EE.09-01-20.01-SG   Limit czasu: 150 minut

Zadanie egzaminacyjne

Wykonaj aplikację internetową portalu dla wędkarzy, wykorzystując pakiet XAMPP oraz edytor zaznaczający składnię.

Aby wykonać zadanie, zaloguj się na konto Egzamin bez hasła. Na pulpicie znajdziesz archiwum ZIP o nazwie ryby2.zip zabezpieczone hasłem: mAt3riaLy

Archiwum należy rozpakować.

Na pulpicie konta Egzamin utwórz folder. Jako nazwy folderu użyj swojego numeru PESEL. Rozpakowane pliki umieść w tym folderze. Po skończonej pracy wyniki zapisz w tym folderze.

Operacje na bazie danych

Baza danych jest zgodna ze strukturą przedstawioną na obrazie 1. Tabela Okres_ochronny zawiera informację o miesiącach w postaci liczbowej, w których ryba jest chroniona. Wartość 0 oznacza, że ryba nie ma okresu ochronnego. Tabela Ryby zawiera pole styl_zycia przyjmujące wartość 1 dla drapieżników i wartość 2 dla ryb spokojnego żeru. Tabela Lowisko zawiera pole rodzaj, którego wartości oznaczają: 1 – morze, 2 – jezioro, 3 – rzeka, 4 – zalew, 5 – staw. Tabela Ryby jest powiązana relacją z tabelami Okres_ochronny oraz Lowisko

Obraz 1. Baza danych

Uruchom usługi MySQL i Apache za pomocą XAMPP Control Panel. Za pomocą narzędzia phpMyAdmin wykonaj podane operacje na bazie danych:

  • utwórz bazę danych o nazwie wedkowanie
  • do bazy wedkowanie zaimportuj tabele z pliku baza.sql z rozpakowanego archiwum
  • wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z numerem PESEL w formacie PNG i nazwij import. Nie kadruj zrzutu. Zrzut powinien obejmować cały ekran monitora z widocznym paskiem zadań. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import tabel
  • zapisz i wykonaj zapytania SQL działające na bazie wedkowanie. Zapytania zapisz w pliku kwerendy.txt, w folderze z numerem PESEL. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie JPG i nadaj im nazwy kw1, kw2, kw3, kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań.
    • zapytanie 1: wybierające jedynie pola id, nazwa i wystepowanie z tabeli Ryby dla ryb spokojnego żeru
    • zapytanie 2: wybierające jedynie pola akwen i wojewodztwo z tabeli Lowisko dla łowisk, które są jeziorami lub rzekami
    • zapytanie 3: wybierające jedynie pole nazwa z tabeli Ryby dla ryb, które nie mają okresu ochronnego. Zapytanie wykorzystuje relację
    • zapytanie 4: tworzące tabelę wedkarze z polami:
      • id, typu liczbowego całkowitego (bez znaku, nie może przyjmować wartości NULL)
      • imie, typu tekstowego
      • nazwisko, typu tekstowego
      • punkty, typu liczbowego całkowitego

Witryna internetowa

Obraz 2. Witryna internetowa

Przygotowanie grafiki:

  • Plik ryba2.jpg, wypakowany z archiwum, należy przeskalować z zachowaniem proporcji tak, aby jego szerokość wynosiła dokładnie 500 px

Cechy witryny:

  • składa się ze strony o nazwie wedkowanie.php
  • zastosowany właściwy standard kodowania polskich znaków
  • tytuł strony widoczny na karcie przeglądarki: „Klub wędkowania”
  • arkusz stylów w pliku o nazwie styl2.css prawidłowo połączony z kodem strony
  • podział strony na bloki: na górze blok banera, poniżej dwa bloki: lewy i prawy, na dole blok stopki. Podział zrealizowany za pomocą znaczników sekcji tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny z obrazem 2
  • zawartość bloku banera: nagłówek drugiego stopnia o treści „Wędkuj z nami!”
  • zawartość bloku lewego: obraz ryba2.jpg z tekstem alternatywnym o treści: „Szczupak”
  • zawartość bloku prawego:
    • nagłówek trzeciego stopnia o treści: „Ryby spokojnego żeru (białe)”
    • skrypt połączenia z bazą
    • w kolejnej linii lista numerowana (uporządkowana) zawierająca dwa odnośniki
      • https://wedkuje.pl/ o treści „Odwiedź także”; odnośnik otwiera się w osobnej karcie lub w osobnym oknie
      • http://www.pzw.org.pl/ o treści „Polski Związek Wędkarski”; odnośnik otwiera się w osobnym oknie
  • Zawartość bloku stopki: akapit (paragraf) o treści: „Stronę wykonał: PESEL”, gdzie PESEL to Twój numer PESEL

Styl CSS witryny internetowej

Cechy formatowania CSS, działające na stronie:

  • domyślne dla całej strony: krój czcionki Garamond
  • wspólne dla bloku banera i bloku stopki: kolor tła #3CB371, biały kolor czcionki, marginesy wewnętrzne 10 px, rozmiar czcionki 130%, wyrównanie tekstu do środka
  • dla bloku lewego: kolor tła #FAEBD7, szerokość 55%, wysokość 450 px
  • dla bloku prawego: kolor tła #FAEBD7, szerokość 45%, wysokość 450 px
  • dla znacznika obrazu: marginesy wewnętrzne 3 px, zewnętrzne 15 px, obramowanie 2 px, linią kreskowaną o kolorze #3CB371

Skrypt połączenia z bazą

W tabeli 1 podano wybór funkcji PHP do obsługi bazy danych. Wymagania dotyczące skryptu:

  • napisany w języku PHP
  • skrypt łączy się z serwerem bazodanowym na localhost, użytkownik root bez hasła, baza danych o nazwie wedkowanie
  • skrypt wysyła do bazy danych zapytanie 1
  • każdy zwrócony zapytaniem wiersz jest wyświetlany w bloku prawym, w osobnych liniach, według wzoru: <id>. <nazwa>, występuje w: <wystepowanie>, gdzie nawiasy <> oznaczają wartości pobrane z bazy danych
  • na końcu działania skrypt zamyka połączenie z serwerem

Tabela 1. Wybór funkcji języka PHP do obsługi bazy MySQLi 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
UWAGA!
Po zakończeniu pracy utwórz plik tekstowy o nazwie przeglądarka.txt. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowałeś poprawność działania witryny. Umieść go w folderze z numerem PESEL.
Nagraj płytę z rezultatami pracy. W folderze z numerem PESEL powinny znajdować się pliki: import.png, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, przeglądarka.txt, ryba2.jpg, styl2.css, wedkowanie.php, ewentualnie inne przygotowane pliki.
Po nagraniu płyty sprawdź poprawność jej odczytu. Opisz płytę swoim numerem PESEL i pozostaw zapakowaną w pudełku na stanowisku wraz z arkuszem egzaminacyjnym.

Czas przeznaczony na wykonanie zadania wynosi 150 minut.

Ocenie będzie podlegać 5 rezultatów:

  • operacje na bazie danych
  • zawartość witryny internetowej
  • działanie witryny internetowej
  • styl CSS witryny internetowej
  • skrypt połączenia z bazą.