PHP 8 ile bir ürünü silmek, kullanıcıların veritabanındaki ürünleri kolayca kaldırabilmesine olanak tanır. Bu rehberde, bir ürünü silme işleminin nasıl gerçekleştirileceği adım adım açıklanacaktır.
1. Veritabanı Yapısı
Daha önce oluşturduğumuz products
tablosunu kullanacağız. Tablo yapısını tekrar hatırlatacak SQL komutu aşağıda 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 Silme İşlemi
Ürün silme işlemi, genellikle bir ürün listesi sayfasında yer alır. Kullanıcı bir ürünü silmek istediğinde, o ürüne ait bir silme bağlantısı tıklanır ve bu işlem başlatılır.
2.1. Ürün Silme Formu
Aşağıda, mevcut ürünleri listeleyen ve her ürünün yanında bir silme bağlantısı olan basit bir PHP dosyası örneği verilmiştir.
<?php
// product_list.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ünleri alma
$stmt = $pdo->query("SELECT * FROM products");
$products = $stmt->fetchAll(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 Listesi</title>
</head>
<body>
<h1>Ürün Listesi</h1>
<table>
<tr>
<th>ID</th>
<th>Ürün Adı</th>
<th>Fiyat</th>
<th>Stok</th>
<th>İşlem</th>
</tr>
<?php foreach ($products as $product): ?>
<tr>
<td><?php echo $product['id']; ?></td>
<td><?php echo htmlspecialchars($product['name']); ?></td>
<td><?php echo htmlspecialchars($product['price']); ?> TL</td>
<td><?php echo htmlspecialchars($product['stock']); ?></td>
<td>
<a target="_blank" href="delete_product.php?id=<?php echo $product['id']; ?>">Sil</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
2.2. Ürünü Silme Sayfası
Aşağıda, belirli bir ürünü silmek için kullanılacak olan PHP kodu verilmiştir.
<?php
// delete_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";
if (isset($_GET['id'])) {
$id = $_GET['id'];
try {
// PDO bağlantısını oluşturma
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// SQL sorgusu
$sql = "DELETE FROM products WHERE id = :id";
// Prepared statement oluşturma
$stmt = $pdo->prepare($sql);
// Değeri bağlama
$stmt->bindParam(':id', $id);
// Sorguyu çalıştırma
$stmt->execute();
echo "Ürün başarıyla silindi!";
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
// Bağlantıyı kapatma
$pdo = null;
} else {
echo "Silinecek ürün ID'si belirtilmedi.";
}
?>
Açıklamalar
-
Ürün Listesi:
-
product_list.php
dosyası, veritabanındaki tüm ürünleri listelemek için kullanılır. - Her ürünün yanında bir "Sil" bağlantısı vardır. Bu bağlantıya tıklandığında, kullanıcıyı
delete_product.php
dosyasına yönlendirir.
-
-
Veri Silme:
-
delete_product.php
dosyası, belirtilen ürün ID'sine sahip ürünü silmek için gerekli kodu içerir. - Eğer ID parametresi belirtilmişse, ürün silme işlemi gerçekleştirilir.
- Silme işlemi
DELETE
SQL sorgusu ile yapılır ve prepared statements kullanılır.
-
-
Başarı Mesajı:
- Ürün başarıyla silindiğinde kullanıcıya bir mesaj gösterilir.
Sonuç
Bu örnek, PHP 8 ile bir ürün silme işleminin nasıl gerçekleştirileceğini göstermektedir. Geliştirmek isterseniz, kullanıcıya silme işlemi için bir onay mekanizması ekleyebilir veya işlem sonrasında kullanıcıyı ürün listesi sayfasına yönlendirebilirsiniz. Bu, kullanıcı deneyimini artıracaktır.