Arkusz E.14 : 2016 - czerwiec - zad. 02 (php)

Oznaczenie: E.14-02-16.05   Limit czasu: 150 minut

Zadanie egzaminacyjne

Wykonaj projekt polegający na opracowaniu zapytań do bazy i stworzeniu witryny internetowej wykorzystującej te zapytania. Wykorzystaj do tego celu pakiet XAMPP z bazą MySQL i narzędziem phpMyAdmin. Stronę internetową zbuduj przy wykorzystaniu edytora zaznaczającego składnię lub edytora WYSIWYG.

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

Plik należy rozpakować.

Wyniki swojej pracy zapisz w folderze stworzonym na pulpicie konta Egzamin. Jako nazwy folderu użyj swojego numeru PESEL.

Operacje na bazie danych

Baza danych szkola zgodna jest ze strukturą przedstawioną na rysunku 1. Tabela ocena ma dwa klucze obce: przedmiot_id oraz uczen_id odpowiadające relacjom między tabelami.

Rysunek 1. Baza danych szkola

Dla uproszczenia zadań, pomiń tabelę przedmiot i przyjmij, że pole przedmiot_id zawiera identyfikatory przedmiotów zgodne z tabelą 1.

Tabela 1. Przedmioty i ich identyfikatory

Przedmiot Identyfikator
język polski 1
matematyka 2
język angielski 3
biologia 4
chemia 5

Wykonaj następujące operacje na bazie danych:

  • wybierz program XAMPP Control Panel i uruchom usługi Apache oraz MySQL. Wybierz w przeglądarce adres //localhost/, a następnie narzędzie phpMyAdmin
  • utwórz nową bazę danych o nazwie szkola
  • zaimportuj bazę szkola.sql z wcześniej rozpakowanego archiwum
  • wykonaj zrzut ekranu po imporcie. Zrzut zapisz w formacie PNG i nazwij import.png. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import (okno programu phpMyAdmin, widoczna baza danych, np. tabele, pola)
  • stwórz następujące zapytania SQL do bazy szkola i sprawdź poprawność ich działania:
    • zapytanie 1: wybierające wszystkie nazwiska i numery PESEL z tabeli uczen
    • zapytanie 2: wybierające imię i nazwisko ucznia o id = 1
    • zapytanie 3: wybierające najwyższą ocenę z przedmiotu biologia dla ucznia o id = 1
    • zapytanie 4: liczące ilość ocen z przedmiotu biologia dla ucznia o id = 1
  • zapytania zapisz w pliku kwerendy.txt. Ponumeruj je, stosując format zapisu: „zapytanie 1: ….. treść zapytania ….”.

Witryna internetowa

Witryna internetowa przedstawiona jest na rysunku 2.

Rysunek 2. Witryna internetowa

Cechy witryny:

  • nazwa pliku: biologia.php
  • zastosowany właściwy standard kodowania polskich znaków
  • tytuł strony widoczny na karcie przeglądarki: „Szkoła Podstawowa”
  • arkusz stylów w pliku o nazwie: styl.css, prawidłowo dołączony do pliku z kodem strony
  • podział strony na bloki: baner, panele lewy i prawy, stopka zrealizowany za pomocą znaczników sekcji (np. znacznika div)
  • zawartość banera: nagłówek pierwszego stopnia o treści: „Oceny uczniów: biologia”
  • zawartość panelu lewego: nagłówek trzeciego stopnia o treści: „Uczeń: ”, dalej skrypt; paragraf (akapit) o treści: „Najwyższa ocena z biologii: ”, dalej skrypt
  • zawartość panelu prawego: nagłówek trzeciego stopnia o treści: „Nazwiska i numery PESEL uczniów: ”, poniżej lista punktowana wypełniana za pomocą skryptu
  • zawartość stopki: nagłówek drugiego stopnia o treści: „Szkoła Podstawowa”, poniżej paragraf o treści: „Stronę opracował: ”, dalej wpisany numer PESEL zdającego

Styl CSS witryny internetowej

Cechy stylu CSS:

  • definicja w pliku styl.css, styl prawidłowo podpięty pod plik z kodem strony
  • formatowanie banera: kolor tła: #875080, wyrównanie tekstu: do środka, wysokość 50 px
  • formatowanie panelu lewego: kolor tła: #C2A6BF, wysokość: 300 px, szerokość: 75%
  • formatowanie panelu prawego: kolor tła: #A1759C, wysokość: 300 px, szerokość: 25%
  • formatowanie stopki: kolor tła: #875080, wyrównanie tekstu: do prawej strony

Skrypt połączenia z bazą

Dla ułatwienia w tabeli 2 podano wybór funkcji PHP do obsługi bazy MySQL. Wymagania dotyczące skryptu:

  • napisany w języku PHP
  • nie jest wymagane sprawdzenie, czy operacja powiodła się, i wyświetlenie stosownego komunikatu
  • skrypt powinien połączyć się z serwerem MySQL, parametry: localhost, użytkownik root bez hasła
  • skrypt powinien wybrać bazę danych o nazwie szkola
  • na końcu działania skryptu powinno zostać obsłużone zamknięcie połączenia z serwerem
  • działanie skryptu w lewym panelu:
    • skrypt wysyła do bazy zapytanie 2 (z pliku kwerendy.txt)
    • w kodzie strony, po słowie „Uczeń:” wypisuje imię i nazwisko zwrócone zapytaniem. Imię i nazwisko powinno zawierać się w nagłówku trzeciego stopnia
    • skrypt wysyła do bazy zapytanie 3 (z pliku kwerendy.txt)
    • w kodzie strony, po tekście „Najwyższa ocena z biologii: ” wypisuje ocenę maksymalną zwróconą zapytaniem
  • działanie skryptu w prawym panelu:
    • skrypt wysyła do bazy zapytanie 1 (z pliku kwerendy.txt)
    • następnie wyświetla wszystkie zwrócone zapytaniem rekordy w liście nienumerowanej. Należy założyć, że baza będzie się rozrastać, więc skrypt powinien wyświetlać taką liczbę wierszy, jaką zwróci zapytanie (nie należy na sztywno wypisywać dwóch wierszy, jak na przykładzie)

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

Funkcje biblioteki mysql Zwracana wartość
mysql_connect(serwer, użytkownik, hasło) id połączenia lub FALSE, gdy niepowodzenie
mysql_select_db ('nazwa_bazy' [,id_polaczenia]) TRUE / FALSE, w zależności od stanu operacji
mysql_error([id_polaczenia]) Tekst komunikatu błędu
mysql_close([id_polaczenia]) TRUE / FALSE, w zależności od stanu operacji
mysql_query(zapytanie [,id_polaczenia]) Wynik zapytania
mysql_fetch_row (wynik_zapytania) Tablica numeryczna odpowiadająca wierszowi zapytania
mysql_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) Liczba wierszy w podanym zapytaniu
mysql_num_fields (wynik_zapytania) Liczba kolumn w podanym zapytaniu
UWAGA!
Po zakończeniu pracy zgłoś przewodniczącemu ZN gotowość do nagrania płyty z rezultatami pracy. W folderze z Twoim numerem PESEL powinny się znajdować pliki: import.png, kwerendy.txt, biologia.php, styl.css, ewentualnie inne przygotowane przez Ciebie pliki.
Po nagraniu płyty sprawdź jej poprawność.

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ą.