Ćwiczenie 5 – Dodawanie produktów

Polecenie

Administrator sklepu chce mieć możliwość dodawania nowych produktów do bazy danych. Utwórz plik dodaj.php, który zawiera formularz do wprowadzania danych produktu (nazwa, cena, ilość) oraz zapisuje dane do bazy MySQL.

Kod do przepisania

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Dodawanie produktu</title>
</head>
<body>

<h2>Dodaj nowy produkt</h2>

<form method="post" action="">
    Nazwa produktu: <br>
    <input type="text" name="nazwa"><br><br>

    Cena (PLN): <br>
    <input type="number" step="0.01" name="cena"><br><br>

    Ilość: <br>
    <input type="number" name="ilosc"><br><br>

    <input type="submit" value="Dodaj produkt">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $nazwa = trim($_POST["nazwa"]);
    $cena = floatval($_POST["cena"]);
    $ilosc = intval($_POST["ilosc"]);

    if (!empty($nazwa) && $cena > 0 && $ilosc >= 0) {
        // Połączenie z bazą danych
        $conn = new mysqli("localhost", "root", "", "sklep");

        if ($conn->connect_error) {
            die("Błąd połączenia z bazą: " . $conn->connect_error);
        }

        $sql = "INSERT INTO produkty (nazwa, cena, ilosc) VALUES ('$nazwa', $cena, $ilosc)";

        if ($conn->query($sql) === TRUE) {
            echo "<h3>Produkt został dodany!</h3>";
        } else {
            echo "Błąd: " . $conn->error;
        }

        $conn->close();
    } else {
        echo "<p style='color:red;'>Wypełnij poprawnie wszystkie pola.</p>";
    }
}
?>

</body>
</html>
            

Efekt końcowy

Po wpisaniu danych i kliknięciu Dodaj produkt, produkt zostanie zapisany w tabeli produkty bazy sklep. Jeśli wszystko się powiedzie, pojawi się komunikat Produkt został dodany!

Przykładowa struktura tabeli (SQL)

CREATE DATABASE sklep;
USE sklep;

CREATE TABLE produkty (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nazwa VARCHAR(100) NOT NULL,
    cena DECIMAL(10,2) NOT NULL,
    ilosc INT NOT NULL
);