Arkusz EE.09 : 2020 - styczeń - zad. 03 (php)
Oznaczenie: EE.09-03-20.01-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
Wykonaj aplikację internetową portalu prognozy pogody, 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 pogoda.zip zabezpieczone hasłem: !Pogod4!
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. Wyniki swojej pracy również zapisz w tym folderze.
Operacje na bazie danych
Do wykonania zadania należy użyć tabel: miasta i pogoda przedstawionych na obrazie 1. Tabela pogoda jest powiązana relacją z tabelą miasta. Pole opady wyrażone jest w [mm/h], pole ciśnienie w [hPa]
Obraz 1. Tabele miasta i pogoda

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
prognoza - do bazy
prognozazaimportuj tabele z plikubaza2.sqlz rozpakowanego archiwum - 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 monitora, z widocznym paskiem zadań. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import tabel - zapisz i wykonaj podane niżej
zapytania SQLdziałające na bazieprognoza. Zapytania zapisz w plikukwerendy.txt, w folderze z numerem PESEL. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie JPG i nadaj im nazwykw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- zapytanie 1: wybierające
wszystkie polaz tabelipogodadla miast oidrównym2, posortowanemalejącowedługdaty prognozy - zapytanie 2: wybierające jedynie pola
idoraztemperatura_dzienz tabelipogodadla tych rekordów, dla którychciśnieniejest poniżej1000 hPa - zapytanie 3: wybierające jedynie pola
data_prognozy,opadyz tabelipogodaoraznazwaz tabelimiastadlatemperatur dziennychpowyżej20 stopni. Zapytanie wykorzystujerelację - zapytanie 4: usuwające z tabeli
pogodarekord oidrównym8
- zapytanie 1: wybierające
Witryna internetowa
Obraz 2. Witryna internetowa

Przygotowanie grafiki:
- plik
logo.png, wypakowany z archiwum, należy przeskalować z zachowaniem proporcji tak, aby jego wysokość wynosiła dokładnie90 px, obraz ma zachować przezroczystość - plik
obraz.jpg, wypakowany z archiwum, należy przeskalować z zachowaniem proporcji tak, aby jego wysokość wynosiła dokładnie250 px
Cechy witryny:
- składa się ze strony o nazwie
meteo.php - zastosowany właściwy standard kodowania polskich znaków
- tytuł strony widoczny na karcie przeglądarki: „Prognoza pogody Poznań”
- arkusz stylów w pliku o nazwie
styl4.cssprawidłowo połączony z kodem strony - podział strony na bloki: na górze trzy bloki
banera:lewy,środkowy,prawy, poniżej dwa bloki:lewyiprawy, poniżej blokgłówny, na dole blokstopki. Podział zrealizowany za pomocą znaczników sekcji, zgodnie zobrazem 2 - zawartość lewego bloku banera: akapit (paragraf) o treści „maj, 2019 r.”
- zawartość środkowego bloku banera: nagłówek
drugiegostopnia o treści „Prognoza dla Poznania” - zawartość prawego bloku banera: obraz
logo.pngz tekstem alternatywnym o treści „prognoza” - zawartość bloku lewego: odnośnik do pliku
kwerendy.txtz treścią: „Kwerendy” - zawartość bloku prawego:
obraz.jpgz tekstem alternatywnym o treści „Polska, Poznań” - zawartość bloku głównego:
- tabela o
sześciukolumnach - wiersz nagłówkowy tabeli zawiera wpisy: „Lp.” „DATA”, „NOC - TEMPERATURA”, „DZIEŃ - TEMPERATURA”, „OPADY [mm/h]”, „CIŚNIENIE [hPa]”
- wiersze z danymi tabeli są wypełnione za pomocą skryptu
- tabela o
- zawartość bloku stopki: akapit (paragraf) o treści: „Stronę wykonał: ”, dalej wstawiony
numer PESELzdającego
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 lewego i prawego bloku banera: kolor tła
RGB 95, 158, 160;żółtykolor czcionki, szerokość20%, wysokość90 px, wyrównanie tekstudo prawej strony - dla środkowego bloku banera: kolor tła
RGB 95, 158, 160;żółtykolor czcionki, szerokość60%, wysokość90 px, wyrównanie tekstudo środka - dla bloku lewego i bloku prawego: kolor tła
RGB 175, 238, 238, szerokość50%, wysokość250 px - dla bloku głównego: kolor tła
RGB 95, 158, 160; marginesy wewnętrzne30 px - dla bloku stopki: kolor tła
RGB 175, 238, 238; marginesy wewnętrzne10 px - dla znacznika tabeli: obramowanie
2 px, liniąkropkowanąozielonymkolorze, szerokość100%, obramowaniepołączone(za pomocą jednej linii, jak naobrazie 2) - dla znacznika komórki danych: obramowanie
2 px, liniąkropkowanąozielonymkolorze - dla znacznika komórki nagłówka tabeli: obramowanie
2 px, liniąkropkowanąozielonymkolorze, kolor tłazielony, kolor czcionkiżółty
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żytkownikrootbez hasła, baza danych o nazwieprognoza - skrypt wysyła do bazy danych
zapytanie 1 - w pierwszej kolumnie tabeli wyświetlana jest liczba porządkowa rozpoczynająca się w pierwszym wierszu z danymi od wartości
1 - w pozostałych kolumnach tabeli wyświetlane są dane z bazy
- każdy zwrócony zapytaniem wiersz jest wyświetlany w osobnym wierszu tabeli w bloku głównym. Dane pobrane z bazy należy umieścić w odpowiednich kolumnach tabeli zgodnie z
obrazem 2 - 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 się znajdować pliki: import.png, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, logo.png, meteo.php, obraz.jpg, przeglądarka.txt, styl4.css, 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ą.

Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!
Kody zniżkowe - kup taniej
Mamy fajne rabaty dla widzów naszego kanału YouTube - otóż można zamówić dwa tomy książek "Wprowadzenie do bezpieczeństwa IT" (15% taniej) oraz książkę "Twierdza Linux. Bezpieczeństwo dla dociekliwych" (10% taniej) - użyjcie odpowiedniego kodu, wpisując go w specjalne pole w koszyku:
KOD: pasja
Dostajesz rabat -15%
KOD: pasja
Dostajesz rabat -15%
KOD: pasja-linux
Dostajesz rabat -10%
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Proszę, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!