Opis zadania
Stwórz formularz, który pozwala użytkownikowi dodać nowy produkt do bazy danych.
- Tworzyć formularz HTML z polami: nazwa, cena, ilość
- Wysyłać dane do serwera metodą POST
- Zapisywać dane w bazie MySQL przy użyciu PHP
- Wyświetlać komunikaty potwierdzające lub błędy
Kroki do wykonania ćwiczenia:
- Utwórz tabelę w bazie danych
sklepo nazwieprodukty: - Utwórz formularz HTML w pliku PHP:
- Dodaj obsługę formularza w PHP:
- Sprawdź dodany produkt w tabeli produktów (np. używając Zadania 4).
CREATE TABLE IF NOT EXISTS produkty (
id INT AUTO_INCREMENT PRIMARY KEY,
nazwa VARCHAR(100) NOT NULL,
cena DECIMAL(10,2) NOT NULL,
ilosc INT NOT NULL
);
<form method="post" action="">
<label for="nazwa">Nazwa produktu:</label>
<input type="text" id="nazwa" name="nazwa" required>
<label for="cena">Cena (PLN):</label>
<input type="number" id="cena" name="cena" step="0.01" required>
<label for="ilosc">Ilość:</label>
<input type="number" id="ilosc" name="ilosc" required>
<button type="submit" name="dodaj">Dodaj produkt</button>
</form>
<?php
if (isset($_POST['dodaj'])) {
$nazwa = trim($_POST['nazwa']);
$cena = floatval($_POST['cena']);
$ilosc = intval($_POST['ilosc']);
if ($nazwa && $cena > 0 && $ilosc >= 0) {
$conn = new mysqli("localhost", "root", "", "sklep");
if ($conn->connect_error) {
die("Błąd połączenia z bazą: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO produkty (nazwa, cena, ilosc) VALUES (?, ?, ?)");
$stmt->bind_param("sdi", $nazwa, $cena, $ilosc);
if ($stmt->execute()) {
echo "<p style='color:green; text-align:center;'>Produkt został dodany!</p>";
} else {
echo "<p style='color:red; text-align:center;'>Błąd dodawania produktu: " . $stmt->error . "</p>";
}
$stmt->close();
$conn->close();
} else {
echo "<p style='color:red; text-align:center;'>Niepoprawne dane!</p>";
}
}
?>
Efekt końcowy: Uczeń będzie mógł dodać nowy produkt do bazy danych przez formularz i zobaczyć komunikat o powodzeniu lub błędzie.