Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHPde burda ne hata yapıyorum

<?php

$isim=$_POST['isim'];
$numara=$_POST['numara'];


mysql_connect('localhost','****gizledim***','***gizledim***');
mysql_select_db('*****gizledim******');
mysql_query("SET NAMES 'utf8'");

$sor=mysql_query("select * from telefon");
$d=mysql_fetch_array($sor);

if(!$numara){
echo "Numara kısmı boş kalamaz.";
}elseif($numara==$d['numara']){ echo 'Numara Eklenmedi...Aynı numaradan bulunmaktadır. Bir sonraki numaraya geçin...'; }
elseif(mysql_query("INSERT INTO `telefon` (`numara` ,`isim`)VALUES ('$numara','$isim');")){
	print "Numara kaydedildi.";	
}else{
	print "Bir hata oldu.Tekrar Deneyin";
}



?>


Bu kodlarda bir hata yaptım. Veritabanındaki numaranın aynısı olsa bile ekliyor ben eklemesini istemiyorum. onun için görüyorsunuz kodunu yazdım fakat. Hertürlü ekliyor. veritabanında olsada olmasada ekliyor yani. Nerede hata var ???
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    sevketbulamaz adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    56 cevap - 0 soru
    $sor=mysql_query("select * from telefon");
    

    ile bütün tabloyu çekiyorsun.

    $sor=mysql_query("select * from telefon where numara ='$numara'");
    

    şeklinde denersen numaranın doğruluğunu bile sorgulamana gerek yok. $d arrayinin 0 olup olmadığını kontrol etmen yeterli olur. eğer 0 dan büyük bir sonuç dönüyorsa bu numara daha önce kayıt edilmiştir.

Cevaplar

  • 1
    protest adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    32 cevap - 6 soru
    $sor=mysql_query("select * from telefon");
    $d=mysql_fetch_array($sor);

    burada sorgu yapıyorsunuz ama, while ile tum kayıtları kontrol etmiyorsunuz.
    bu şekilde yaparsanız sadece ilk kayıt ile karşılaştırma yapabilirsin.

    ya da en güzeli:

    $sor=mysql_query("select * from telefon where numara='$_POST[numara]'");
    $d=mysql_fetch_array($sor);

    şeklinde almak