Arkusz E.14 : 2017 - czerwiec - zad. 03 (php)

Oznaczenie: E.14-03-17.06   Limit czasu: 150 minut

Zadanie egzaminacyjne

Wykonaj aplikację internetową dla gabinetu weterynaryjnego. Wykorzystaj pakiet XAMPP jako środowisko bazodanowo - aplikacyjne. Stronę internetową zbuduj przy wykorzystaniu edytora zaznaczającego składnię.

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

Archiwum należy rozpakować.

Wyniki swojej pracy zapisz w folderze utworzonym na pulpicie konta Egzamin. Jako nazwy folderu użyj swojego numeru PESEL. Rozpakowane pliki umieść w tym folderze.

Operacje na bazie danych

Na Obrazie 1 przedstawiono tabele bazy weterynarz. Pole rodzaj z tabeli Zwierzeta określa rodzaj zwierzęcia i przyjmuje wartość 1 dla psa lub wartość 2 dla kota. Pole Uslugi_id tabeli Zwierzeta jest kluczem obcym wiążącym do klucza głównego tabeli Uslugi.

Obraz 1. Schemat bazy danych

Uruchom usługi MySQL i Apache z XAMPP Control Panel i przejdź do narzędzia phpMyAdmin. Następnie wykonaj operacje na bazie danych:

  • Utwórz nową bazę danych o nazwie weterynarz
  • Do bazy weterynarz zaimportuj tabele z pliku zwierzeta.sql z rozpakowanego archiwum
  • Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z Twoim numerem PESEL w formacie PNG i nazwij import-weterynarz.png. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import bazy. Nie skaluj, ani nie przycinaj obrazu
  • Utwórz następujące zapytania SQL do bazy weterynarz i sprawdź poprawność ich działania:
    • Zapytanie 1: wybierające jedynie pola imie, telefon, szczepienie, opis z tabeli Zwierzeta
    • Zapytanie 2: wybierające jedynie pola id, imie, wlasciciel z tabeli Zwierzeta dla tych rekordów, dla których rodzaj to pies
    • Zapytanie 3: korzystające z relacji i wybierające jedynie pola imie z tabeli Zwierzeta oraz odpowiadające im pola nazwa z tabeli Uslugi
    • Zapytanie 4: zwracające średnią cenę wszystkich usług zapisanych w tabeli Uslugi
  • Utworzone zapytania zapisz w folderze z Twoim numerem PESEL, w pliku kwerendy.txt. Zapytania ponumeruj stosując format zapisu: „zapytanie 1: … treść zapytania …”
  • Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie PNG i nadaj im nazwy kw1, kw2, kw3, kw4. Zrzuty powinny być czytelne i wykonane bez skalowania i kadrowania, a także z widocznym paskiem zadań i godziną ich wykonania.

Witryna internetowa

Obraz 2. Witryna internetowa

Przygotowanie grafiki:

  • Wykonaj obraz i jego miniaturę na podstawie grafiki rys.png wypakowanej z archiwum
  • Obraz przytnij / kadruj do ramki widocznej na rys.png. W skadrowanym obrazie ramka ta nie powinna występować (powinna być odcięta)
  • Skaluj obraz z zachowaniem proporcji do szerokości 450 px i zapisz tak przygotowany obraz jako logo.jpg w formacie JPEG
  • Skaluj obraz z zachowaniem proporcji do szerokości 150 px i zapisz tak przygotowany obraz jako logo-mini.jpg w formacie JPEG

Cechy witryny:

  • Nazwa strony: weterynarz.php
  • Zastosowany właściwy standard kodowania polskich znaków
  • Tytuł strony, widoczny na karcie przeglądarki: „Weterynarz”
  • Arkusz stylów w pliku o nazwie weterynarz.css, prawidłowo połączony z kodem strony
  • Podział strony na bloki: baner, obok siebie panele lewy, środkowy, prawy zrealizowany za pomocą znaczników sekcji
  • Zawartość banera: nagłówek pierwszego stopnia o treści: „GABINET WETERYNARYJNY”
  • Zawartość panelu lewego:
    • Nagłówek drugiego stopnia o treści: „PSY”
    • Wyniki działania skryptu nr 1
    • Nagłówek drugiego stopnia o treści: „KOTY”
    • Wyniki działania skryptu nr 2
  • Zawartość panelu środkowego:
    • Nagłówek drugiego stopnia o treści: „SZCZEGÓŁOWA INFORMACJA O ZWIERZĘTACH”
    • Wyniki działania skryptu nr 3
  • Zawartość panelu prawego:
    • Nagłówek drugiego stopnia o treści: „WETERYNARZ”
    • Obraz logo-mini.jpg, który jest jednocześnie odnośnikiem prowadzącym do grafiki logo.jpg, obraz powinien opływać tekst następnego akapitu z prawej strony (nie należy wykorzystywać tabeli, opływanie należy zdefiniować w kodzie CSS)
    • Tekst akapitu (paragrafu) o treści „Krzysztof Nowakowski, lekarz weterynarii”
    • Nagłówek drugiego stopnia o treści: „GODZINY PRZYJĘĆ”
    • Tabela 2 x 2 z treścią: „Poniedziałek”, „15:00 - 19:00”, „Wtorek”, „15:00 - 19:00”

Styl CSS witryny internetowej

Plik weterynarz.css zawiera formatowanie dla:

  • Banera: kolor RGB tła (105, 88, 89), biały kolor czcionki, rozmiar czcionki 150%, wyrównanie tekstu do środka, wysokość 80 px
  • Panelu lewego: kolor RGB tła (145, 127, 112), szerokość 30%, wysokość 600 px
  • Panelu środkowego: kolor RGB tła (184, 168, 169), szerokość 50%, wysokość 600 px
  • Panelu prawego: kolor RGB tła (145, 127, 112), szerokość 20%, wysokość 600 px
  • Nagłówka drugiego stopnia: biały kolor czcionki
  • Obrazu: zdefiniowane opływanie do prawej strony
  • Tabeli i komórek tabeli: obramowanie o szerokości 1 px

Niewymienione właściwości obiektów przybierają wartości domyślne.

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
  • Nie jest wymagane sprawdzenie czy operacja na bazie powiodła się
  • Skrypt łączy się z serwerem bazodanowym na localhost, użytkownik root bez hasła, baza danych o nazwie weterynarz
  • Na końcu działania skryptu powinno zostać obsłużone zamknięcie połączenia z serwerem
  • Działanie skryptu nr 1:
    • Skrypt wysyła do bazy zapytanie 2 (z pliku kwerendy.txt)
    • Każdy zwrócony rekord jest wyświetlany w osobnej linii
  • Działanie skryptu nr 2:
    • Identycznie jak w przypadku skryptu nr 1, należy jednak tak zmodyfikować klauzulę warunkową zapytania 2, aby wyświetlone rekordy dotyczyły kotów
  • Działanie skryptu nr 3:
    • Skrypt wysyła do bazy zapytanie 1 (z pliku kwerendy.txt)
    • Z każdego zwróconego rekordu wyświetlane są informacje według wzoru (tekst napisany w nawiasach < > oznacza zwrócone zapytaniem pole):
      • Pacjent: <imie>
      • Linia horyzontalna:
        • Telefon właściciela: <telefon>
        • ostatnie szczepienie: <szczepienie>
        • informacje: <opis>

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 nagraj płytę z rezultatami pracy. W folderze z Twoim numerem PESEL powinny się znajdować pliki: import_weterynarz.png, kw1.png, kw2.png, kw3.png, kw4.png, kwerendy.txt, logo.jpg, logo-mini.jpg, weterynarz.php, weterynarz.css, ewentualnie inne przygotowane przez Ciebie pliki.
Po nagraniu płyty sprawdź poprawność nagrania i opisz płytę swoim numerem PESEL.

Czas przeznaczony na wykonanie zadania wynosi 150 minut.

Ocenie będą podlegać 4 rezultaty:

  • operacje na bazie danych
  • witryna internetowa
  • styl CSS witryny internetowej
  • skrypt połączenia z bazą.