Projekt końcowy - semestr II

ZADANIE 1 — Projektowanie i implementacja bazy danych

Opis

Utwórz w phpMyAdmin bazę sportwypozyczalnia z trzema prostymi tabelami i wykonaj kilka podstawowych zapytań.


Wymagania

 

1. Struktura bazy danych 

Utwórz bazę sportwypozyczalnia z kodowaniem utf8_polish_ci i trzy tabele:

kategorie

  • id_kategorii — INT, klucz główny, AUTO_INCREMENT
  • nazwa_kategorii — VARCHAR(50), NOT NULL

sprzet

  • id_sprzetu — INT, klucz główny, AUTO_INCREMENT
  • nazwa — VARCHAR(100), NOT NULL
  • id_kategorii — INT, klucz obcy → kategorie(id_kategorii)
  • cena_za_dzien — DECIMAL(6,2), NOT NULL
  • dostepny — TINYINT, domyślnie 1 (1 = dostępny, 0 = wypożyczony)

wypozyczenia

  • id_wypozyczenia — INT, klucz główny, AUTO_INCREMENT
  • imie_klienta — VARCHAR(50), NOT NULL
  • nazwisko_klienta — VARCHAR(50), NOT NULL
  • id_sprzetu — INT, klucz obcy → sprzet(id_sprzetu)
  • data_wypozyczenia — DATE, NOT NULL

2. Dane testowe

Uzupełnij bazę przez zakładkę „Wstaw” w phpMyAdmin:

  • 4 kategorie (np. Rowery, Narty, Hulajnogi, Deskorolki)
  • 10 sztuk sprzętu (rozłożone po kategoriach)
  • 6 wypożyczeń

     

3. Zapytania SQL

W zakładce SQL w phpMyAdmin wykonaj i zapisz cztery zapytania:

  1. Wyświetl cały sprzęt posortowany alfabetycznie po nazwie.
  2. Wyświetl tylko sprzęt dostępny (dostepny = 1) z ceną mniejszą niż 50 zł.
  3. Wyświetl nazwę sprzętu razem z nazwą kategorii (JOIN dwóch tabel — tylko dwóch!).
  4. Wyświetl wszystkie wypożyczenia razem z nazwą wypożyczonego sprzętu (JOIN tabel wypozyczenia i sprzet).

ZADANIE 2 — Aplikacja webowa one-page w PHP

Opis

Twórz jedną stronę index.php, która łączy się z bazą i wyświetla dane oraz pozwala dodać nowe wypożyczenie.

Struktura plików

sportwypozyczalnia/
├── index.php       (wszystko w jednym pliku)
└── style.css       (arkusz stylów)

Wymagania

1. Połączenie z bazą 

Na samej górze index.php uczeń wpisuje proste połączenie PDO:

<?php
// Wzorzec do uzupełnienia:
$pdo = new PDO(„mysql:host=localhost;dbname=sportwypozyczalnia;charset=utf8”,
„root”, „”);
?>

2. Wyświetlanie danych — trzy sekcje 

Każda sekcja to:

  • nagłówek <h2>
  • pętla pobierająca dane z bazy
  • tabela HTML wypełniona w pętli foreach


Sekcja 1: Lista sprzętu

// Wzorzec:
$wynik = $pdo->query(„SELECT s.nazwa, k.nazwa_kategorii, s.cena_za_dzien, s.dostepny
FROM sprzet s
JOIN kategorie k ON s.id_kategorii = k.id_kategorii”);
foreach ($wynik as $wiersz) {
// wyświetl wiersz tabeli
}

Wyświetla: nazwa sprzętu, kategoria, cena, dostępność (tekst „Tak”/„Nie” zamiast cyferki).

Sekcja 2: Lista wypożyczeń

// Wzorzec:
$wynik = $pdo->query(„SELECT w.imie_klienta, w.nazwisko_klienta, s.nazwa, w.data_wypozyczenia
FROM wypozyczenia w
JOIN sprzet s ON w.id_sprzetu = s.id_sprzetu”);

Wyświetla: kto wypożyczył, co wypożyczył, kiedy.

Sekcja 3: Formularz dodawania wypożyczenia

Formularz z polami:

  • imię klienta (input text)
  • nazwisko klienta (input text)
  • wybór sprzętu (<select> wypełniany z bazy: SELECT id_sprzetu, nazwa FROM sprzet)
  • data wypożyczenia (input date)

Po wysłaniu formularza:

if ($_SERVER[’REQUEST_METHOD’] === 'POST’) {
$imie = $_POST[’imie’];
$nazwisko = $_POST[’nazwisko’];
$id_sprzetu = $_POST[’id_sprzetu’];
$data = $_POST[’data’];

$pdo->exec(„INSERT INTO wypozyczenia (imie_klienta, nazwisko_klienta, id_sprzetu, data_wypozyczenia)
VALUES (’$imie’, '$nazwisko’, $id_sprzetu, '$data’)”);

echo „<p class=’sukces’>Wypożyczenie dodane!</p>”;
}

Kontakt: mgzsp22@gmail.com

© 2026. Wszystkie prawa zastrzeżone.

error: Content is protected !!