Arkusz E.14 : 2019 - styczeń - zad. 01 (php)

Oznaczenie: E.14-01-19.01   Limit czasu: 150 minut

Zadanie egzaminacyjne

Wykonaj aplikację internetową dla bazy danych filmów. Wykorzystaj pakiet XAMPP jako środowisko bazodanowo-aplikacyjne. Stronę internetową zbuduj przy wykorzystaniu edytora zaznaczającego składnię oraz programu do obróbki grafiki rastrowej i wektorowej.

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

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 wynikowe pliki zapisz w tym folderze.

Operacje na bazie danych

Baza danych jest zgodna ze strukturą przedstawioną na obrazie 1. Tabela filmy ma dwa klucze obce łączące ją z tabelami rezyserzy i gatunki.

Obraz 1. Struktura bazy danych

Widok relacji

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

  • Utwórz nową bazę danych o nazwie dane
  • Do bazy zaimportuj tabele z pliku dane.sql z rozpakowanego archiwum ZIP
  • Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z numerem PESEL, w formacie PNG i nazwij import. Nie kadruj zrzutu. Powinien on obejmować cały ekran, 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 danych dane. 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: wstawiające do tabeli filmy jeden rekord o danych: film Suburbicon z roku 2017, gatunek filmu to komedia, ocena jest równa 5
    • Zapytanie 2: wybierające jedynie pole tytul z tabeli filmy oraz odpowiadające mu pole nazwa z tabeli gatunki dla filmów, dla których pole ocena ma wartość 6. Należy posłużyć się relacją
    • Zapytanie 3: wybierające jedynie pola tytul oraz rok z tabeli filmy tylko dla gatunku dramat o ocenie równej 5
    • Zapytanie 4: tworzące tabelę o nazwie aktorzy i polach id typu numerycznego, imie typu tekstowego, nazwisko typu tekstowego. Pole id nie może przyjmować wartości NULL

Witryna internetowa

Obraz 2 przedstawia sytuację, w której kursor myszy znalazł się na obszarze formularza.

Obraz 2. Witryna internetowa

Witryna

Przygotowanie grafiki

Grafikę kadr.jpg należy skadrować. Na obrazie widoczne są dwie czarne linie wyznaczające kadr. Zdjęcie powinno być wycięte tak, aby był widoczny tylko obszar pomiędzy liniami (linie nie mają być widoczne).

Grafika kadr.jpg

Witryna

Cechy witryny

  • Składa się ze strony o nazwie index.html
  • Zastosowany właściwy standard kodowania polskich znaków
  • Tytuł strony widoczny na karcie przeglądarki: "Filmy"
  • Arkusz stylów w pliku o nazwie styl1.css prawidłowo połączony z kodem strony
  • Podział strony na bloki: boczny panel po lewej stronie oraz trzy panele po prawej stronie - jeden pod drugim, stopka pod wsystkimi panelami. Podział zrealizowany za pomocą znaczników sekcji, zgodnie z obrazem 2
  • Zawartość lewego panelu:
    • Nagłówek trzeciego stopnia o treści "Dostępne gatunki filmu"
    • Lista numerowana (uporządkowana) z elementami o treści: "Sci-Fi", "animacja", "dramat", "horror", "komedia"
    • Umieszczony w akapicie (paragrafie) odnośnik o treści "Pobierz obraz" prowadzący do obrazu kadr.jpg
    • Umieszczony w akapicie odnośnik o treści "Sprawdź repertuar kin" prowadzący do strony repertuar-kin.pl, odnośnik otwiera się w osobnym oknie
  • Zawartość pierwszego prawego panelu: nagłówek pierwszego stopnia o treści "FILMOTEKA"
  • Zawartość drugiego prawego panelu: formularz wysyłający dane metodą POST do pliku dodaj.php z elementami umieszczonymi w osobnych wierszach:
    • Tekst "Tytuł:" oraz pole edycyjne typu tekstowego
    • Tekst "Gatunek filmu: " oraz pole edycyjne typu numerycznego
    • Tekst "Rok produkcji: " oraz pole edycyjne typu numerycznego
    • Tekst "Ocena: " oraz pole edycyjne typu numerycznego
    • Przycisk o treści CZYŚĆ, po jego wciśnięciu dane z pól edycyjnych są usuwane
    • Przycisk o treści DODAJ, po jego wciśnięciu dane są wysyłane do skryptu PHP
  • Zawartość trzeciego prawego panelu: obraz kadr.jpg z tekstem alternatywnym "zdjęcia filmowe"
  • Zawartość stopki: akapit o treści "Autor strony: ", zaś dalej wstawiony numer PESEL zdającego

Styl CSS witryny internetowej

Plik styl1.css zawiera formatowanie:

  • Domyślne dla całej strony: krój czcionki Helvetica
  • Panelu lewego: kolor tła Navy, kolor czcionki biały, szerokość 25%, wysokość 700px
  • Pierwszego panelu prawego: kolor tła RoyalBlue, wysokość 100px, szerokość 75%, wyrównanie tekstu do środka
  • Drugiego panelu prawego: kolor tła SteelBlue, wysokość 300px, szerokość 75%
  • Trzeciego panelu prawego: kolor tła RoyalBlue, wysokosć 300px, szerokość 75%, wyrównanie tekstu do środka
  • Stopki: kolor tła SteelBlue, wyrównanie tekstu do środka, marginesy wewnętrzne 20px
  • Nagłówka pierwszego stopnia: odległość między literami wynosi 5px
  • Formularza: marginesy zewnętrzne 30px, wysokość linii wynosi 3
  • W momencie najechania kursorem na obszar formularza zmienia on kolor tła na DeepSkyBlue

Skrypt połączenia z bazą

W tabeli 1 podano wybór funkcji PHP do obsługi bazy danych.

Wymagania dotyczące skryptów:

  • Napisany w języku PHP, umieszczony w pliku dodaj.php (w pliku znajduje się tylko skrypt)
  • Skrypt łączy się z serwerem bazodanowym na localhost, użytkownik root bez hasła, baza danych o nazwie dane
  • Pobiera dane z formularza ze wszystkich pól edycyjnych
  • Dodaje dane do tabeli filmy za pomocą zmodyfikowanego zapytania nr 1
  • Wypisuje tekst "Film tytuł został dodany do bazy", gdzie tytuł oznacza tytuł wpisany do formularza.
  • Zamyka połączenie z bazą

Tabela 1. Wybór funkcji języka PHP do obsługi bazy MySQL i MariaDB

Funkcje biblioteki mysql Funkcje bilioteki mysqli Zwracana wartość
mysql_connect(serwer, użytkownik, hasło) mysqli_connect(serwer, uzytkownik, haslo, nazwa_bazy) id połączenia lub FALSE, gdy niepowodzenie
mysql_select_db ('nazwa_bazy' [,id_polaczenia]) mysqli_select_db(id_polaczenia, nazwa_bazy) TRUE / FALSE, w zależności od stanu operacji
mysql_error([id_polaczenia]) mysqli_error(id_polaczenia) Tekst komunikatu błędu
mysql_close([id_polaczenia]) mysqli_close(id_polaczenia) TRUE / FALSE, w zależności od stanu operacji
mysql_query(zapytanie [,id_polaczenia]) mysqli_query(id_polaczenia, zapytanie) Wynik zapytania
mysql_fetch_row (wynik_zapytania) mysqli_fetch_row(wynik_zapytania) Tablica numeryczna odpowiadająca wierszowi zapytania
mysql_fetch_array (wynik_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
mysql_num_rows (wynik_zapytania) mysqli_num_rows(wynik_zapytania) Liczba wierszy w podanym zapytaniu
mysql_num_fields (wynik_zapytania) mysqli_num_fields (wynik_zapytania) Liczba kolumn w podanym zapytaniu
UWAGA!
Po zakończeniu pracy utwórz plik tekstowy. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowałeś poprawność działania witryny, zapisz go w folderze z numerem PESEL jako przeglądarka.txt.
Nagraj płytę z rezultatami pracy. W folderze z numerem PESEL powinny się znajdować pliki: dodaj.php, import.png, index.html, kadr.jpg, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, przeglądarka.txt, styl1.css, ewentualnie inne przygotowane pliki.
Po nagraniu płyty sprawdź poprawność nagrania. Opisz płytę swoim numerem PESEL i pozostaw na stanowisku, zapakowaną w pudełku wraz z arkuszem egzaminacyjnym.

Czas przeznaczony na wykonanie zadania wynosi 150 minut.

Ocenie będzie podlegać 5 rezultatów:

  • operacje na bazie danych
  • wygląd witryny internetowej
  • działanie witryny internetowej
  • styl CSS witryny internetowej
  • skrypt połączenia z bazą.