Ćwiczenia PHP – Baza danych

Krok 1: Utwórz bazę danych i tabele

Skopiuj poniższy kod SQL do phpMyAdmin lub swojego lokalnego serwera MySQL.


-- Tworzenie bazy danych
CREATE DATABASE szkola;
USE szkola;

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

-- Tabela uczniowie
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

Dodaj kilka klas i uczniów do tabeli.


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: Połączenie z bazą i pobranie danych (PHP)

Skopiuj ten kod PHP do pliku np. lista_uczniow.php i uruchom lokalnie w XAMPP.


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

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

// Pobieranie uczniów z nazwą klasy
$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: Ćwiczenia dodatkowe

Po przepisaniu kodu do lokalnego serwera XAMPP uczniowie zobaczą wyniki na własnej maszynie i będą mogli eksperymentować bez ryzyka uszkodzenia serwera.