Mysql aynı kayıt gşrmeyi engelleme?

Kodla Büyü

Biosoft

Aktif Üye
Mesajlar
225
Mysql e aynı olan birden fazla kayıt girilmesini nası bir if deyimi yazarak engelleyebilirim yardımvı olun....
 
Önce elinizdeki bilgilere göre bir sorgu yapıp, eğer böyle bir kayıt yoksa ekleme işlemini gerçekleştireceksiniz, varsa uyarı yapacaksınız. Veritabanı yapınızı ve eklemek istediğiniz türdeki bilgiyi bilmeden kod konusunda yardımcı olmak mümkün değil.
 
Hocam kullanıcı adını kontrol eden bir kayıt sayfası.
$veriyolu=mysql_connect("localhost","root");
mysql_select_db("yillik");
$kayitlar=mysql_query("Select * from ogrenci where kadi='$kadi',$veriyolu);
$count=mysql_num_rows($kayitlar);

if($count==1){
echo ("Böyle bir kayıt var")
}
else
{
Kayıt kodları
}
 
Neyi aynı olacak kaydın. Mesala bu kayıt bir personel ise adımı
yoksa tc kimlik nosumu ?

Diyelimki tc nosu aynı olan ikinci bir kayıt istemiyorsun
ozaman
1- kaydedeceyin tc nosunu vertabanından istersin
2- eğer kayıt varsa yeni kayyıttan varz geçersin .
Kod:
$tc=$_POST["tc"];
$sorgu="SELECT tcNo FROM personel WHERE tcNo= $tc ";
$sonuc=mysql_query($sorgu);
if(mysql_num_rows($sonuc)){
  echo "kayıt var";
}else{
  echo "yeni kaıt eklene bilir"
 // buraya yeni kaıt eklemek için gerkli  sql sorgusunu vs yazarsın
}

// editor kullanamdan direk buraya yazdım sen incele mantığını kapartık
 
Teşekürler hocam

Ama şu şekilde kısa bir bağlantı yaptım

<?php
$baglan=mysql_connect("localhost","root","");
$giris=mysql_select_db("deneme",$baglan);
if ($giris){echo "true";} else {echo "false";}
if (mysql_query("INSERT INTO mehmet('mail' ,'sifre') VALUES([email='mehmetyozgat66@windowslive.com]'mehmetyozgat66@windowslive.com[/email]' ,'123456');"))
{echo "Basarısız";} else {echo "Basarılı";}
?>


Bu şekilde bağlanmıyor eksik nerde acaba
 
once uzun ve daha açık kodlarla çalış ,. kodlar başarılı olursa sonra kısalarla uğraş :P
sen bizim verdiğimiz örnekleri denedinmi?
 
Harun hocamın verdiği kodla yatım teşekürler gece 3 e kadar uğrastım ama oldu. bu kod yazmanın en pis tarafı bir kodu eksik yazssan veya unutsan yarım saat o hatayı bulmaya calısıyon hele birde dalmışsan kodlara sabaha kadar uğras allahtan ben sabaha kadar uğrasmadım simdi hem bağlantıyı kurdum hemde aynı kayıt girilmesini engelledim hocamın sayayeisnde tekrar teşekürler. Yanlız son bir şey daha soramadan edemicem bu tablodaki toplam kayıt sayısını hangi kodla yapacam txt dosyasındaki kayıt sayısını buldum ama bu o mantıkla olmadı nasıl olacak
 
sql le yapmak istersen:

$sorgu = mysql_query ("select count(*) from tabloadi", $baglanti);

yada

$sorgu = mysql_query ("select count(*) from tabloadi where sartlar", $baglanti); //burdada belirtilen sarta uygun kayıtların toplam sayısını alırsın...
 
Olmadı hocam kodlar uyarı veriyo
Warning: mysql_query() expects parameter 2 to be resource, boolean given in C:\xampp\htdocs\default.php on line 23
diye ne olacak?
 
$sorgu = mysql_query ("select count(*) from tabloadi", $baglanti);
yerine
$sorgu = mysql_query ("select count(*) from tabloadi");
yazarsanız sorun ortadan kalkar.

kaydın tekrarlanmaması içinde kayıtta tekil olmasını istediğiniz alanı veri tabanından Unique olarak düzenleyin.
 
bu gireceğimiz kaydı tek tek sordurmak uzun olmuyormu yada daha kısa bir yolu varmı?(kısalık kod açısından değil program seriliği açısından)
 
örneğin veritabanı;
tcno ad soyad adres telefon ...
şeklinde olsun. tcno alanı tekrarlanmasın istiyorsanız veritabanında tcno alanını Unique olark belirlersiniz ve hiçbir şekilde aynı tcno ya sahip 2. bir kayıt eklenemez. sorgu yapmaya kontrol etmeye de gerek kalmaz. MySQL tekrarlanan kayıt şeklinde bir hata verir zaten.
 
BBNET
Geri
Üst