v2.5.2
Giriş yap

Aynı kayıtları engelleme

resat
502 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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
  ));
    
Cevap yaz
Cevaplar (5)
mubado
714 gün önce

Group yapabilirsin

kartal
714 gün önce

sütuna unique kısıtlaması getir
db bağlantı değişkenine hata varmı
bak
db->errorInfo kendi içinde dizi döndürür
duplicate kodu varmı bak varsa
aynı kayıt var uyarısı verdirirsin
yapamazsan bilgisayardan gönderirim
ayrıntısını

emmir2
719 gün önce
$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
  ));
}
nonsleeper
719 gün önce

distinct ve pluck kullanımına bakabilirsin

rephp7
719 gün önce

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.