PHP Dersleri

PHP ile Tablodaki Aynı Verileri Silme

PHP ile tabloda bulunan aynı verileri tespit edip silme işleminin nasıl yapıldığını inceliyoruz.

PHP ile tabloda yer alan aynı verileri sileceğiz. Bu örnekle birlikte, php ile aynı veriyi silme işlemini sağlamış olacağız. Bu işlemi gerçekleştirmek için INNER JOIN ifadesini kullanacağız. Bu ifadeyle birlikte tabloda yer alan iki aynı kaydı bulup, direkt silme işlemine geçeceğiz. Silme işlemini DELETE ile sorguda belirterek, tek bir sorgu ile işlemi sağlayacağız.

PHP İle Aynı Veriyi Silme

İlk olarak veritabanı bağlantısı oluşturuyoruz. Ardından aynı veriyi tespit eden SQL ifadesini yazıyoruz. Bu ifademiz DELETE ile oluşturulacaktır. Çünkü direkt tespit edilip silinmesini istiyoruz. Silme işlemi gerçekleştiğinde de bize sonuç olarak “Tablodaki aynı veriler başarıyla silindi.” sonucunu vermesini istiyoruz.

<?php
// Veritabanı bağlantısı kurma
$servername = "localhost";
$username = "kullanici_adi";
$password = "sifre";
$dbname = "veritabani_adi";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

// Aynı verileri silmek için SQL sorgusu
$sql = "DELETE t1 FROM tablo_adi t1
        INNER JOIN tablo_adi t2 
        WHERE t1.id > t2.id AND t1.sutun_adi = t2.sutun_adi";

if ($conn->query($sql) === TRUE) {
    echo "Tablodaki aynı veriler başarıyla silindi.";
} else {
    echo "Hata: " . $conn->error;
}

// Veritabanı bağlantısını kapatma
$conn->close();
?>

Bu kod öncelikle veritabanına bağlanır ve ardından SQL sorgusu kullanarak tablodaki aynı verileri siler. INNER JOIN kullanarak aynı sutun_adi değerine sahip olan ve daha yüksek bir id değerine sahip olan kayıtları seçeriz. Bu sayede, her bir aynı veriden sadece bir tanesi silinir.

Önemli: Tablo adı, sütun adı ve veritabanı adı gibi değişkenleri kendi veritabanınıza uygun şekilde değiştirmeyi unutmayın.

Not: Bu örneği çalıştırmadan önce veritabanı yedeği almayı unutmayınız.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir