Część 18 kursu PHP pod kątem INF.03: Wzorce zadań egzaminacyjnych w PHP i mysqli. Teoria w skrócie i 16 ćwiczeń z automatycznym sprawdzaniem.
Arkusz zwykle składa się z części teoretycznej i praktycznej. W praktycznej dostajesz opis zadania, pliki startowe i listę wymagań, które trzeba spełnić w określonym czasie.
// Plan pracy z arkusza (przyklad)
// 1. utworz baze i tabele
// 2. zrob formularz HTML
// 3. odbierz dane w PHP
// 4. zapisz do bazy
// 5. wyswietl wyniki
// 6. zabezpiecz wyjscie
echo 'Plan gotowy';
// Plan pracy z arkusza (przyklad)
// 1. utworz baze i tabele
// 2. zrob formularz HTML
// 3. odbierz dane w PHP
// 4. zapisz do bazy
// 5. wyswietl wyniki
// 6. zabezpiecz wyjscie
echo 'Plan gotowy';
Od czego zacząć arkusz?
Poprawna: a) Lista wymagań porządkuje pracę i pozwala sprawdzić efekt.
Powtarzające się elementy to: formularz z kilkoma polami, odbiór danych metodą POST, walidacja, zapis do bazy i wypisanie wyników w tabeli. Często dochodzi upload pliku lub obsługa sesji.
$polaczenie = mysqli_connect('localhost', 'root', '', 'egzamin');
mysqli_set_charset($polaczenie, 'utf8mb4');
$stmt = mysqli_prepare($polaczenie, 'INSERT INTO zgloszenia (imie, email) VALUES (?, ?)');
mysqli_stmt_bind_param($stmt, 'ss', $imie, $email);
mysqli_stmt_execute($stmt);
echo '<p>Zgloszenie zapisane</p>';
$polaczenie = mysqli_connect('localhost', 'root', '', 'egzamin');
mysqli_set_charset($polaczenie, 'utf8mb4');
$stmt = mysqli_prepare($polaczenie, 'INSERT INTO zgloszenia (imie, email) VALUES (?, ?)');
mysqli_stmt_bind_param($stmt, 'ss', $imie, $email);
mysqli_stmt_execute($stmt);
echo '<p>Zgloszenie zapisane</p>';
Jaki schemat najczęściej się powtarza?
Poprawna: b) Większość zadań to formularz, walidacja i zapis do bazy.
Zadania SQL zwykle dotyczą utworzenia tabeli, wstawienia danych, zapytania z warunkiem i raportu z agregacją. Często trzeba też połączyć dwie tabele po kluczu.
SELECT k.nazwa, COUNT(z.id) AS zgloszenia
FROM klasy k
LEFT JOIN zgloszenia z ON z.klasa_id = k.id
GROUP BY k.nazwa
ORDER BY zgloszenia DESC;
SELECT imie FROM zgloszenia WHERE email LIKE '%@wp.pl';
SELECT k.nazwa, COUNT(z.id) AS zgloszenia
FROM klasy k
LEFT JOIN zgloszenia z ON z.klasa_id = k.id
GROUP BY k.nazwa
ORDER BY zgloszenia DESC;
SELECT imie FROM zgloszenia WHERE email LIKE '%@wp.pl';
Od jakiego zapytania zacząć?
Poprawna: a) Select pokazuje, czy dane są poprawne.