Egzamin praktyczny E.14 czerwiec 2017 zadanie 1
Egzamin: Kwalifikacja E.14, Rodzaj: egzamin praktyczny, Oznaczenie: E.14-01-17.06, Termin: czerwiec 2017
Wykonaj aplikację internetową dla przychodni lekarskiej. 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 dane.zip, zabezpieczone hasłem: L3karz
Plik należy rozpakować.
Wyniki swojej pracy zapisz w folderze utworzonym na pulpicie konta Egzamin. Jako nazwy folderu użyj swojego numeru PESEL. Rozpakowany plik umieść w tym folderze.
Operacje na bazie danych
Na obrazie 1 przedstawiono tabelę Pacjenci, która jest fragmentem bazy danych przychodni.
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 przychodnia
- Do bazy przychodnia zaimportuj tabele z pliku przychodnia.sql z rozpakowanego archiwum
-- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Czas generowania: 30 Mar 2016, 08:45 -- Wersja serwera: 10.1.9-MariaDB -- Wersja PHP: 5.6.15 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Baza danych: `przychodnia` -- -- -------------------------------------------------------- -- -- Struktura tabeli dla tabeli `pacjenci` -- CREATE TABLE `pacjenci` ( `id` int(10) UNSIGNED NOT NULL, `imie` text, `nazwisko` text, `choroby_przewlekle` text, `uczulenia` text, `choroba` text, `leki_przepisane` text, `opis` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Zrzut danych tabeli `pacjenci` -- INSERT INTO `pacjenci` (`id`, `imie`, `nazwisko`, `choroby_przewlekle`, `uczulenia`, `choroba`, `leki_przepisane`, `opis`) VALUES (1, 'Anna', 'Kowalska', 'J45', 'trawy', 'J04', 'WitaminaC', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum'), (2, 'Jan', 'Kowalski', 'E14', 'brak', 'J04', 'Glukoza', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum'), (3, 'Jan', 'Nowak', 'B01', 'brak', 'J05', 'brak', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum'), (4, 'Katarzyna', 'Nowak', 'B05', 'jajko, truskawki', 'J05', 'antybiotyk', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum'); -- -- Indeksy dla zrzutów tabel -- -- -- Indexes for table `pacjenci` -- ALTER TABLE `pacjenci` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT dla tabeli `pacjenci` -- ALTER TABLE `pacjenci` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
- Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z Twoim numerem PESEL w formacie PNG i nazwij import-przychodnia.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 przychodnia i sprawdź poprawność ich działania:
– Zapytanie 1: wybierające jedynie pola id, imie, nazwisko z tabeli Pacjenci
– Zapytanie 2: wybierające jedynie pola imie, nazwisko, choroby_przewlekle, uczulenia z tabeli pacjenci dla id równego 1
– Zapytanie 3: wybierające jedynie pola imie, nazwisko z tabeli pacjenci dla tych rekordów, dla których wartość pola uczulenia jest równa ‘brak’ - 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 JPEG i nadaj im nazwy kw1, kw2, kw3. Zrzuty powinny być czytelne oraz wykonane bez skalowania i kadrowania, a także z widocznym paskiem zadań i godziną ich wykonania.
Witryna internetowa
Cechy witryny wspólne dla obu stron:
- Dwie strony: przychodnia.php oraz pacjent.php
- Zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony, widoczny na karcie przeglądarki: „Przychodnia”
- Arkusz stylów w pliku o nazwie przychodnia.css, prawidłowo połączony z kodem strony
- Podział strony na bloki: baner, panele lewy i prawy, stopka zrealizowany za pomocą znaczników sekcji
- Zawartość banera: nagłówek pierwszego stopnia o treści: „PRAKTYKA LEKARZA RODZINNEGO”
- Zawartość panelu lewego:
– Nagłówek trzeciego stopnia o treści: „LISTA PACJENTÓW”
– Wyniki działania skryptu nr 1
– Odstęp na dwie linie
– Formularz, który po zatwierdzeniu wyświetla stronę pacjent.php
– Zawartość formularza: tekst „Podaj id:”, w kolejnej linii pole do wprowadzania danych typu numerycznego oraz przycisk z napisem „Pokaż dane” zatwierdzający formularz
– Nagłówek trzeciego stopnia o treści: „LEKARZE”,
– Lista zagnieżdżona zgodna z obrazem 3. Kolejne napisy: pn – śr, Anna Kwiatkowska, Jan Kowalewski, czw – pt, Krzysztof Nowak
- Zawartość panelu prawego:
– Nagłówek drugiego stopnia o treści: „INFORMACJE SZCZEGÓŁOWE O PACJENCIE” - Zawartość stopki:
– Tekst akapitu (paragrafu) o treści: „utworzone przez: ”, dalej Twój numer PESEL
– Odnośnik o treści: „Pobierz plik z kwerendami”, wskazujący na plik kwerendy.txt
Dodatkowe cechy strony przychodnia.php dla panelu prawego:
- Pod napisem „INFORMACJE…” znajduje się akapit (paragraf) „Brak wybranego pacjenta” Dodatkowe cechy strony pacjent.php dla panelu prawego:
Pod napisem „INFORMACJE…” jest wyświetlony efekt działania skryptu nr 2
Styl CSS witryny internetowej
Plik przychodnia.css zawiera formatowanie dla:
- Banera: kolor RGB tła (66, 22, 42), biały kolor czcionki, rozmiar czcionki 140%, wyrównanie tekstu do środka, wysokość 100 px
- Panelu lewego: kolor RGB tła (142, 115, 110), szerokość 30%, wysokość 600 px, biały kolor czcionki
- Panelu prawego: kolor RGB tła (230, 230, 230), szerokość 70%, wysokość 600 px, rozmiar czcionki 120%
- Stopki: kolor RGB tła (142, 115,110), biały kolor czcionki, wyrównanie tekstu do prawej strony, wysokość 100 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 przychodnia
- 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 1 (z pliku kwerendy.txt)
– Każdy zwrócony rekord jest wyświetlany w osobnej linii - Działanie skryptu nr 2:
– Skrypt wykorzystuje dane wysłane z formularza
– Wykorzystując zapytanie 2 (z pliku kwerendy.txt), należy je tak przekształcić, aby w klauzuli warunku pole id było równe wartości przesłanej z formularza
– Skrypt wysyła do bazy zmodyfikowane zapytanie 2
– Dane zwrócone wypisywane są w kolejnych akapitach (paragrafach), tekst napisany w nawiasach < > oznacza zwrócone zapytaniem pole:
– Imię i nazwisko: <imie> <nazwisko>
– Choroby przewlekłe: <choroby_przewlekle>
– Uczulenia: <uczulenia>
Tabela 1. Wybór funkcji języka PHP do obsługi bazy MySQL i MariaDB
UWAGA: po zakończeniu pracy nagraj płytę z rezultatami pracy. W folderze z Twoim numerem PESEL powinny się znajdować pliki: import_przychodnia.png, kw1.jpg, kw2.jpg, kw3.jpg, kwerendy.txt, pacjent.php, przychodnia.css, przychodnia.php, 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ą.