PHP 8 ile bir ürün oluşturma formu yapmak, kullanıcıların yeni ürünler eklemesine olanak tanır. Aşağıda, basit bir ürün oluşturma formunun nasıl oluşturulacağı, verilerin nasıl alınacağı ve bu verilerin işlenerek veritabanına kaydedileceği hakkında detaylı bir rehber bulabilirsiniz.
1. Veritabanı Yapısı
Öncelikle, ürünleri saklayacağımız bir veritabanı tablosuna ihtiyacımız var. Aşağıda bir products
tablosu oluşturmak için SQL komutu verilmiştir:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
stock INT NOT NULL
);
2. Ürün Oluşturma Formu
Aşağıda, ürün bilgilerini girmek için basit bir HTML formu örneği verilmiştir:
<!-- create_product.php -->
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ürün Oluştur</title>
</head>
<body>
<h1>Yeni Ürün Oluştur</h1>
<form action="create_product.php" method="post">
<label for="name">Ürün Adı:</label><br>
<input type="text" id="name" name="name" required><br><br>
<label for="price">Fiyat:</label><br>
<input type="number" id="price" name="price" step="0.01" required><br><br>
<label for="stock">Stok Miktarı:</label><br>
<input type="number" id="stock" name="stock" required><br><br>
<input type="submit" value="Ürün Oluştur">
</form>
</body>
</html>
3. Verileri İşleme ve Veritabanına Kaydetme
Form gönderildiğinde, verilerin işlenmesi ve veritabanına kaydedilmesi için PHP kodu yazmalıyız. Aşağıda, form verilerini işleyerek veritabanına ekleyen bir örnek verilmiştir:
<?php
// create_product.php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Veritabanı bilgileri
$host = 'localhost';
$db = 'veritabani_adi';
$user = 'kullanici_adi';
$pass = 'sifre';
$charset = 'utf8mb4';
// DSN (Data Source Name) oluşturma
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
// PDO bağlantısını oluşturma
try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Formdan gelen verileri alma
$name = $_POST['name'];
$price = $_POST['price'];
$stock = $_POST['stock'];
// SQL sorgusu
$sql = "INSERT INTO products (name, price, stock) VALUES (:name, :price, :stock)";
// Prepared statement oluşturma
$stmt = $pdo->prepare($sql);
// Değerleri bağlama
$stmt->bindParam(':name', $name);
$stmt->bindParam(':price', $price);
$stmt->bindParam(':stock', $stock);
// Sorguyu çalıştırma
$stmt->execute();
echo "Ürün başarıyla oluşturuldu!";
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
// Bağlantıyı kapatma
$pdo = null;
}
?>
Açıklamalar
-
HTML Formu:
-
create_product.php
dosyası, ürün adını, fiyatını ve stok miktarını girmeye olanak tanıyan bir form içerir. - Form verileri POST yöntemi ile aynı dosyaya gönderilir.
-
-
Veri İşleme:
- Form gönderildiğinde, veriler
$_POST
süper globali aracılığıyla alınır. - Veritabanı bağlantısı PDO ile sağlanır. Bağlantı hataları,
try-catch
bloğu ile yakalanır.
- Form gönderildiğinde, veriler
-
Veritabanına Ekleme:
-
INSERT INTO
SQL sorgusu, ürün bilgileriniproducts
tablosuna eklemek için kullanılır. - Prepared statements, SQL enjeksiyonlarına karşı koruma sağlamak için kullanılır.
- Değerler,
bindParam
yöntemi ile sorguya bağlanır.
-
-
Sonuç:
- Başarılı bir şekilde ekleme yapıldığında kullanıcıya bilgi verilir.
Sonuç
Bu örnek, PHP 8 ile bir ürün oluşturma formunun nasıl yapılacağını ve bu formdan alınan verilerin nasıl işleneceğini göstermektedir. Uygulamanızı geliştirerek, form doğrulama, kullanıcı geri bildirimleri ve hata yönetimi gibi ek özellikler ekleyebilirsiniz.