Php 8 Edit Product Form

Php 8 Edit Product Form

PHP 8 ile bir ürün düzenleme formu oluşturmak, kullanıcıların mevcut ürün bilgilerini güncelleyebilmesini sağlar. Bu rehberde, bir ürün düzenleme formunun nasıl oluşturulacağı, mevcut ürün verilerinin nasıl alınacağı ve bu verilerin güncellenerek veritabanına kaydedileceği açıklanacaktır.

1. Veritabanı Yapısı

Daha önce oluşturduğumuz products tablosunu kullanacağız. Aşağıda tablo yapısını tekrar hatırlatacak 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 Düzenleme Formu

Aşağıda, mevcut ürün bilgilerini güncellemek için bir HTML formu örneği verilmiştir. Form, ürün ID'sini alacak ve o ID ile ilişkili verileri düzenleyecektir.

2.1. Ürün Bilgilerini Getirme

Öncelikle, düzenlenecek ürünü bulmak için bir sorgu yazmalıyız. Kullanıcı bir ürün seçtiğinde, bu ürünün bilgileri formda gösterilecektir.

<?php // edit_product.php // Veritabanı bilgileri $host = 'localhost'; $db = 'veritabani_adi'; $user = 'kullanici_adi'; $pass = 'sifre'; $charset = 'utf8mb4'; // DSN oluşturma $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; try { $pdo = new PDO($dsn, $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Ürün ID'sini alma if (isset($_GET['id'])) { $id = $_GET['id']; // Ürünü veritabanından alma $stmt = $pdo->prepare("SELECT * FROM products WHERE id = :id"); $stmt->bindParam(':id', $id); $stmt->execute(); $product = $stmt->fetch(PDO::FETCH_ASSOC); } } catch (PDOException $e) { echo "Hata: " . $e->getMessage(); } // Bağlantıyı kapatma $pdo = null; ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ürün Düzenle</title> </head> <body> <h1>Ürün Düzenle</h1> <?php if ($product): ?> <form action="edit_product.php?id=<?php echo $product['id']; ?>" method="post"> <label for="name">Ürün Adı:</label><br> <input type="text" id="name" name="name" value="<?php echo htmlspecialchars($product['name']); ?>" required><br><br> <label for="price">Fiyat:</label><br> <input type="number" id="price" name="price" step="0.01" value="<?php echo htmlspecialchars($product['price']); ?>" required><br><br> <label for="stock">Stok Miktarı:</label><br> <input type="number" id="stock" name="stock" value="<?php echo htmlspecialchars($product['stock']); ?>" required><br><br> <input type="submit" value="Güncelle"> </form> <?php else: ?> <p>Ürün bulunamadı.</p> <?php endif; ?> </body> </html>

3. Verileri Güncelleme

Form gönderildiğinde, verilerin işlenmesi ve veritabanında güncellenmesi için PHP kodu eklememiz gerekiyor.

<?php // edit_product.php // (Önceki kod) if ($_SERVER["REQUEST_METHOD"] == "POST") { // Veritabanı bağlantısını tekrar oluşturma try { $pdo = new PDO($dsn, $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Formdan gelen verileri alma $id = $_GET['id']; $name = $_POST['name']; $price = $_POST['price']; $stock = $_POST['stock']; // SQL sorgusu $sql = "UPDATE products SET name = :name, price = :price, stock = :stock WHERE id = :id"; // Prepared statement oluşturma $stmt = $pdo->prepare($sql); // Değerleri bağlama $stmt->bindParam(':name', $name); $stmt->bindParam(':price', $price); $stmt->bindParam(':stock', $stock); $stmt->bindParam(':id', $id); // Sorguyu çalıştırma $stmt->execute(); echo "Ürün başarıyla güncellendi!"; } catch (PDOException $e) { echo "Hata: " . $e->getMessage(); } // Bağlantıyı kapatma $pdo = null; } ?>

Açıklamalar

  1. HTML Formu:

    • Form, mevcut ürün bilgilerini düzenlemek için kullanılır. Ürün adı, fiyatı ve stok miktarı gibi alanlar bulunmaktadır.
    • Form, GET yöntemiyle gelen ürün ID'sini kullanarak güncellenen ürünün ID'sini içerir.
  2. Veri Alma:

    • Form gönderildiğinde, $_POST süper globali aracılığıyla form verileri alınır.
    • Ürün bilgileri, veritabanından çekilerek formda gösterilir.
  3. Veri Güncelleme:

    • UPDATE SQL sorgusu, kullanıcının girdiği yeni verileri veritabanında günceller.
    • Prepared statements, güvenliği artırmak için kullanılır.
  4. Başarı Mesajı:

    • Güncelleme işlemi başarılı olduğunda kullanıcıya bilgi verilir.

Sonuç

Bu örnek, PHP 8 ile bir ürün düzenleme formunun nasıl oluşturulacağını ve mevcut ürün bilgilerini güncelleyerek veritabanına kaydetmeyi göstermektedir. Geliştirmek isterseniz, form doğrulama, kullanıcı geri bildirimleri ve hata yönetimi gibi ek özellikler ekleyebilirsiniz.



Yorum Ekle

Üzerine gel