Ćwiczenia SQL + PHP – Do przepisania

Krok 1: Utwórz bazę danych i tabele

Najpierw skopiuj poniższy kod SQL do phpMyAdmin lub swojego lokalnego serwera MySQL:


CREATE DATABASE szkola;
USE szkola;

CREATE TABLE klasy (
  id_klasy INT AUTO_INCREMENT PRIMARY KEY,
  nazwa VARCHAR(50)
);

CREATE TABLE uczniowie (
  id INT AUTO_INCREMENT PRIMARY KEY,
  imie VARCHAR(50),
  nazwisko VARCHAR(50),
  id_klasy INT,
  FOREIGN KEY (id_klasy) REFERENCES klasy(id_klasy)
);

Krok 2: Dodaj przykładowe dane


INSERT INTO klasy (nazwa) VALUES ('4TI'), ('3TI');

INSERT INTO uczniowie (imie, nazwisko, id_klasy) 
VALUES 
('Jan', 'Kowalski', 1),
('Anna', 'Nowak', 1),
('Piotr', 'Wiśniewski', 2),
('Maria', 'Lewandowska', 2);

Krok 3: Pobieranie danych (SELECT)

Wyświetl listę uczniów z nazwą klasy:


<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "szkola";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Błąd połączenia: " . $conn->connect_error);
}

$result = $conn->query("
    SELECT u.imie, u.nazwisko, k.nazwa AS klasa
    FROM uczniowie u
    LEFT JOIN klasy k ON u.id_klasy = k.id_klasy
");

while($row = $result->fetch_assoc()) {
    echo $row["imie"]." ".$row["nazwisko"]." (".$row["klasa"].")<br>";
}

$conn->close();
?>

Krok 4: Dodawanie ucznia (INSERT)


<?php
$conn = new mysqli("localhost", "root", "", "szkola");

$imie = "Tomasz";
$nazwisko = "Zieliński";
$id_klasy = 1;

$stmt = $conn->prepare("INSERT INTO uczniowie (imie, nazwisko, id_klasy) VALUES (?, ?, ?)");
$stmt->bind_param("ssi", $imie, $nazwisko, $id_klasy);
$stmt->execute();

echo "Dodano ucznia: $imie $nazwisko";

$stmt->close();
$conn->close();
?>

Krok 5: Aktualizacja klasy ucznia (UPDATE)


<?php
$conn = new mysqli("localhost", "root", "", "szkola");

$id_ucznia = 1;
$nowa_klasa = 2;

$stmt = $conn->prepare("UPDATE uczniowie SET id_klasy=? WHERE id=?");
$stmt->bind_param("ii", $nowa_klasa, $id_ucznia);
$stmt->execute();

echo "Zaktualizowano ucznia o ID $id_ucznia";

$stmt->close();
$conn->close();
?>

Krok 6: Usuwanie ucznia (DELETE)


<?php
$conn = new mysqli("localhost", "root", "", "szkola");

$id_ucznia = 4;

$stmt = $conn->prepare("DELETE FROM uczniowie WHERE id=?");
$stmt->bind_param("i", $id_ucznia);
$stmt->execute();

echo "Usunięto ucznia o ID $id_ucznia";

$stmt->close();
$conn->close();
?>

Krok 7: Ćwiczenia dodatkowe

Po przepisaniu wszystkich kodów uczniowie będą mogli testować je lokalnie w XAMPP bez ryzyka błędów na serwerze.