Ćwiczenia SQL i PHP

Podstawy SQL

Ćwiczenie 1: Utworzenie bazy danych

Utwórz bazę danych o nazwie sklep.

CREATE DATABASE sklep;

Ćwiczenie 1: Tworzenie tabeli

Utwórz tabelę produkty z polami: id, nazwa, cena.

CREATE TABLE produkty ( id INT AUTO_INCREMENT PRIMARY KEY, nazwa VARCHAR(50), cena DECIMAL(6,2) );

Ćwiczenie 2: Wstawianie danych

Dodaj trzy produkty do tabeli produkty.

INSERT INTO produkty(nazwa, cena) VALUES ('Klawiatura', 99.99), ('Mysz', 59.50), ('Monitor', 799.00);

Ćwiczenie 3: Warunek w SELECT

Wyświetl produkty droższe niż 5 zł.

SELECT * FROM produkty WHERE cena > 5;

Ćwiczenie 4: Aktualizacja danych

Zmień cenę produktu „Mysz” na 69.99.

UPDATE produkty SET cena = 69.99 WHERE nazwa = 'Mysz';

Ćwiczenie 5: Usuwanie danych

Usuń produkt „Monitor”.

DELETE FROM produkty WHERE nazwa = 'Monitor';

Zaawansowane SQL

Ćwiczenie 1: Tworzenie tabeli zamówienia

Dodaj tabelę zamowienia, która łączy się z tabelą produkty.

CREATE TABLE zamowienia ( id INT AUTO_INCREMENT PRIMARY KEY, produkt_id INT, ilosc INT, FOREIGN KEY (produkt_id) REFERENCES produkty(id) );

Ćwiczenie 2: JOIN

Wyświetl nazwy produktów i ilości zamówień.

SELECT p.nazwa, z.ilosc FROM zamowienia z JOIN produkty p ON z.produkt_id = p.id;

Ćwiczenie 3: GROUP BY

Policz łączną liczbę sprzedanych sztuk każdego produktu.

SELECT p.nazwa, SUM(z.ilosc) AS sprzedane FROM zamowienia z JOIN produkty p ON z.produkt_id = p.id GROUP BY p.nazwa;

Ćwiczenie 4: HAVING

Wyświetl tylko produkty, których sprzedano więcej niż 10 sztuk.

SELECT p.nazwa, SUM(z.ilosc) AS sprzedane FROM zamowienia z JOIN produkty p ON z.produkt_id = p.id GROUP BY p.nazwa HAVING SUM(z.ilosc) > 10;

Ćwiczenie 5: Widok

Stwórz widok raport_sprzedazy.

CREATE VIEW raport_sprzedazy AS SELECT p.nazwa, SUM(z.ilosc) AS sprzedane FROM zamowienia z JOIN produkty p ON z.produkt_id = p.id GROUP BY p.nazwa;

Ćwiczenie 6: Procedura

Napisz procedurę dodającą nowy produkt.

DELIMITER // CREATE PROCEDURE dodaj_produkt( IN prod_nazwa VARCHAR(50), IN prod_cena DECIMAL(6,2) ) BEGIN INSERT INTO produkty(nazwa, cena) VALUES(prod_nazwa, prod_cena); END // DELIMITER ;

SQL + PHP

Ćwiczenie 1: Formularz dodawania produktu

Stwórz formularz w PHP do dodawania produktów do bazy.

<form method="post"> Nazwa: <input type="text" name="nazwa"><br> Cena: <input type="number" step="0.01" name="cena"><br> <input type="submit" value="Dodaj"> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $nazwa = $_POST["nazwa"]; $cena = $_POST["cena"]; $conn = new mysqli("localhost", "root", "", "sklep"); $sql = "INSERT INTO produkty(nazwa, cena) VALUES('$nazwa', $cena)"; $conn->query($sql); $conn->close(); } ?>

Ćwiczenie 2: Wyszukiwanie produktu

Napisz formularz, który wyszukuje produkty po nazwie.

<form method="get"> Szukaj: <input type="text" name="q"> <input type="submit" value="Szukaj"> </form> <?php if (isset($_GET["q"])) { $q = $_GET["q"]; $conn = new mysqli("localhost", "root", "", "sklep"); $sql = "SELECT * FROM produkty WHERE nazwa LIKE '%$q%'"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { echo $row["nazwa"]." - ".$row["cena"]." zł<br>"; } $conn->close(); } ?>

Ćwiczenie 3: Proste logowanie

Stwórz tabelę uzytkownicy i prosty formularz logowania w PHP.

CREATE TABLE uzytkownicy ( id INT AUTO_INCREMENT PRIMARY KEY, login VARCHAR(50), haslo VARCHAR(255) ); <form method="post"> Login: <input type="text" name="login"><br> Hasło: <input type="password" name="haslo"><br> <input type="submit" value="Zaloguj"> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $login = $_POST["login"]; $haslo = $_POST["haslo"]; $conn = new mysqli("localhost", "root", "", "sklep"); $sql = "SELECT * FROM uzytkownicy WHERE login='$login' AND haslo='$haslo'"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "Zalogowano!"; } else { echo "Błędny login lub hasło."; } $conn->close(); } ?>