Aynı kayıtları engelleme
Merhaba, get ile 2 adet veri geliyor. Bu veriler daha önce girilmişse kayıt ettirmek istemiyorum. Verilerden biri sipariş formu biride mail adresi. Kayıtları nasıl engelleyebilirim.
$mailadres = $_GET['mail'];
$a = $_GET['order_number'];
$ekle=$db->prepare("INSERT INTO mail_status SET
order_name=:order_name,
mail_adres=:mail_adres,
mail_date=:mail_date
");
$insert=$ekle->execute(array(
'order_name' => $a,
'mail_adres' => $mailadres,
'mail_date' => $date
));
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
$mailadres = $_GET['mail'];
$a = $_GET['order_number'];
$query = $db->prepare("SELECT * FROM mail_status where mail=:mail AND order_number=:order_number LIMIT 1");
$kontrol = $query->execute(array(":mail"=>$mailadres,":order_number"=>$a));
$kontrol = $query->fetch(PDO::FETCH_ASSOC);
if($kontrol){
echo "Bu veri zaten var";
}else{
$ekle=$db->prepare("INSERT INTO mail_status SET
order_name=:order_name,
mail_adres=:mail_adres,
mail_date=:mail_date
");
$insert=$ekle->execute(array(
'order_name' => $a,
'mail_adres' => $mailadres,
'mail_date' => $date
));
}
Tablondaki benzersiz olmasını istediğin sütuna Unique kısıtlaması ekleyebilirsin.
ya da tablondan mevcut verileri çekecek sorgunu yazıp, tablodaki verin gönderdiğin veriye eşitse false döndüreceksin eğer eşit değilse (else kısmı) insert kodlarını çalıştıracaksın.