W budowie
Wielokrokowa synteza wiedzy, typowe schematy arkuszy CKE i audyt błędów

Część 21 · Symulacje arkuszy CKE (Finał egzaminacyjny) — kurs PHP INF.03

Część 21 kursu PHP INF.03: Finał egzaminacyjny i symulacje arkuszy CKE / EE.09. 16 przekrojowych zadań łączących bazę danych, walidację, sesje, pliki i architekturę aplikacji.

  • 45 min
  • 16 slajdów
  • Notatki nauczyciela: N
  • Strona modułu: otwórz
Plan · 45 min

Co dziś robimy

  1. 12 minStrategia rozwiązywania symulacji Po każdym etapie sprawdzaj efekt w przeglądarce.
  2. 12 minPHP w zadaniu egzaminacyjnym Dane zapisuj zapytaniem przygotowanym, a wynik pokazuj w tabeli z zabezpieczeniem wyjścia.
  3. 12 minSQL w zadaniu egzaminacyjnym Potem wstawiasz dane, budujesz zapytanie z warunkiem i raport z agregacją.
  4. 4 minĆwiczenia 16 zadań w module — wybierz 3–4 na lekcję
  5. 5 minPodsumowanie bilet wyjściowy i zadanie domowe
Atom 1 z 4 · ~12 min

Strategia rozwiązywania symulacji

Symulacja arkusza ma ograniczony czas i kilka niezależnych wymagań. Najlepszy plan to podział na etapy: baza, formularz, logika, wyświetlanie, zabezpieczenia.

  • Po każdym etapie sprawdzaj efekt w przeglądarce.
  • Lepiej mieć działającą część niż niedokończoną całość — punkty przyznaje się za spełnione wymagania.
  • Zostaw sobie kilka minut na przegląd: nazwy tabel i kolumn, komunikaty, kodowanie polskich znaków.
  • To najczęstsze źródła utraconych punktów.
Kod · atom 1 · ~3 min

Jak to wygląda w kodzie

// Kolejnosc pracy z symulacja
// 1. utworz tabele i wstaw dane startowe
// 2. zrob formularz z wymaganymi polami
// 3. odbierz i sprawdz dane
// 4. zapisz rekord
// 5. pokaz tabele wynikow
// 6. sprawdz polskie znaki i komunikaty
echo 'Etapy zaplanowane';
Przykład na żywo · atom 1 · ~3 min

Uruchom i pokaż

// Kolejnosc pracy z symulacja
// 1. utworz tabele i wstaw dane startowe
// 2. zrob formularz z wymaganymi polami
// 3. odbierz i sprawdz dane
// 4. zapisz rekord
// 5. pokaz tabele wynikow
// 6. sprawdz polskie znaki i komunikaty
echo 'Etapy zaplanowane';
Sprawdzenie · atom 1 · ~2 min

Pytanie do klasy

Jak podzielić pracę?

Atom 2 z 4 · ~12 min

PHP w zadaniu egzaminacyjnym

W czystym arkuszu PHP zwykle łączy się z bazą i obsługuje formularz. Kluczowe jest poprawne połączenie: host, użytkownik, hasło i nazwa bazy muszą pochodzić z treści zadania.

  • Dane zapisuj zapytaniem przygotowanym, a wynik pokazuj w tabeli z zabezpieczeniem wyjścia.
  • Wymagane komunikaty muszą mieć dokładnie brzmienie z opisu.
  • Jeśli zadanie wymaga pliku lub sesji, wracasz do gotowego schematu: upload z walidacją, sesja z logowaniem.
  • Te schematy warto przećwiczyć wcześniej.
Kod · atom 2 · ~3 min

Jak to wygląda w kodzie

$pdo = new PDO('mysql:host=localhost;dbname=egzamin;charset=utf8mb4', 'root', '');
$stmt = $pdo->prepare('INSERT INTO zgloszenia (imie, email, klasa) VALUES (?, ?, ?)');
$stmt->execute([$imie, $email, $klasa]);

$lista = $pdo->query('SELECT imie, klasa FROM zgloszenia ORDER BY imie')->fetchAll();
foreach ($lista as $w) {
    echo '<tr><td>' . htmlspecialchars($w['imie']) . '</td></tr>';
}
Przykład na żywo · atom 2 · ~3 min

Uruchom i pokaż

$pdo = new PDO('mysql:host=localhost;dbname=egzamin;charset=utf8mb4', 'root', '');
$stmt = $pdo->prepare('INSERT INTO zgloszenia (imie, email, klasa) VALUES (?, ?, ?)');
$stmt->execute([$imie, $email, $klasa]);

$lista = $pdo->query('SELECT imie, klasa FROM zgloszenia ORDER BY imie')->fetchAll();
foreach ($lista as $w) {
    echo '<tr><td>' . htmlspecialchars($w['imie']) . '</td></tr>';
}
Sprawdzenie · atom 2 · ~2 min

Pytanie do klasy

Skąd brać dane połączenia?

Atom 3 z 4 · ~12 min

SQL w zadaniu egzaminacyjnym

Część SQL zwykle zaczyna się od struktury: tabela z kluczem głównym i kolumnami o wskazanych typach. Nazwy muszą być zgodne z treścią, nawet jeśli wydają się niezgrabne.

  • Potem wstawiasz dane, budujesz zapytanie z warunkiem i raport z agregacją.
  • Przy raporcie pamiętaj o GROUP BY i czytelnych aliasach.
  • Na końcu sprawdź wyniki zapytaniem SELECT * .
  • Jeśli dane są inne, niż oczekujesz, błąd jest zwykle w warunku albo w kolejności kolumn przy INSERT .
Kod · atom 3 · ~3 min

Jak to wygląda w kodzie

CREATE TABLE zgloszenia (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50) NOT NULL,
    klasa VARCHAR(10) NOT NULL,
    data DATE NOT NULL
);

INSERT INTO zgloszenia (imie, klasa, data) VALUES ('Ola', '3TI', '2026-03-04');

SELECT klasa, COUNT(*) AS ile
FROM zgloszenia
GROUP BY klasa
ORDER BY ile DESC;
Przykład na żywo · atom 3 · ~3 min

Uruchom i pokaż

CREATE TABLE zgloszenia (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50) NOT NULL,
    klasa VARCHAR(10) NOT NULL,
    data DATE NOT NULL
);

INSERT INTO zgloszenia (imie, klasa, data) VALUES ('Ola', '3TI', '2026-03-04');

SELECT klasa, COUNT(*) AS ile
FROM zgloszenia
GROUP BY klasa
ORDER BY ile DESC;
Sprawdzenie · atom 3 · ~2 min

Pytanie do klasy

Od czego zacząć część SQL?

Zamknięcie · ~3 min

Co zabrać z lekcji

  • Po każdym etapie sprawdzaj efekt w przeglądarce.
  • Dane zapisuj zapytaniem przygotowanym, a wynik pokazuj w tabeli z zabezpieczeniem wyjścia.
  • Potem wstawiasz dane, budujesz zapytanie z warunkiem i raport z agregacją.
  • Ćwiczenia
Bilet wyjściowy: Czym sprawdzić wynik?
Odpowiedź: d) SELECT *
Hyżyk· Część 21 · Symulacje arkuszy CKE (Finał egzaminacyjny) — kur moduł 1 / 1