Veritabanına veri gönderme.
Merhaba,
Veri tabanına veri göndermek için bir form yaptım, ve aşağıda vereceğim kodlarla verı gönderiyorum. Sorun şu ben gönderilen aynı değerleri kaydedilmesini istemiyorum yada uyarılmasını istiyorum. umarım derdimi anlatabildim
$eser = $_POST['eser'];
$kaydet = mysql_query("insert into defter (id, yazar, eser) values (NULL, '$yazar', '$eser')");
if($kaydet){
echo "Gönderildi";
} else{
echo "Gönderilmedi";
}
Ne kaydedilmesini istiyorsunuz peki ?
bunun yeirne ne gelecek mesela :
$yazar = $_POST['yazar'];
Birde şu satırda kısaltma olabilir. Auto_increment ise :
$kaydet = mysql_query("insert into defter (yazar, eser) values ('$yazar', '$eser')");
şöyle diyeyim A adlı yazarın B adlı kitabı kayıtlı ise bu bir daha gönderildiğin de bunun kayıtlı olduğunu bildirsin
cvp.
if(mysql_num_rows($sql)==0) {
$kaydet= { sizin sorgunuz ve işlemleriniz .... }
} else {
echo 'Eklemek istediğiniz eser daha önceden kayıt edilmiştir.';
}
Cevap için teşekürler,
ama hata veriyor Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in xxxxxxxxxx/kayd.php on line 8
8. sırada ise if(mysql_num_rows($sql)==0) { var,
necati kardeşim
$sql=mysql_query("SELECT id FROM `eser` WHERE `yazar`='A' and `eser_adi`='B'");
if(mysql_num_rows($sql)==0) {
$kaydet= { sizin sorgunuz ve işlemleriniz .... }
} else {
echo 'Eklemek istediğiniz eser daha önceden kayıt edilmiştir.';
}
bu şekilde yazmış
$sql=mysql_query("SELECT id FROM eser WHERE `yazar`='A' and `eser_adi`='B'");
if(mysql_num_rows($sql)==0) {
$kaydet= { sizin sorgunuz ve işlemleriniz .... }
} else {
echo 'Eklemek istediğiniz eser daha önceden kayıt edilmiştir.';
}
yukarda yeşil renkte eser yazan bölümde tek tırnak olmayıp sizin tablonuzun adı olması gerekir
öyle bir deneyin
Hatayı göstermiyor ama eski sorgudan da bir farkı yok bunun yani yine tablomdaki degerleri göz önünde buundurmadan gönderilen her şeyi kayd ediyor. Galiba ben sorunumu tam anlatamadım tablom aşağıda
id yazar eser
1 Ahmet Kar
Diyelim ki tablomda Ahmedin Kar adlı esri kayıtlıdır, eğer bir daha Ahmedin Kar adlı eseri gönderilirse bu veri tabanına kayıt edilmesin.
$yazar = $_POST['yazar'];
$eser = $_POST['eser'];
//gelen bilgileri tabloda sorgulatıyoruz
$sorgula=mysql_query("select * from defter where yazar='".$yazar."' and eser='".$eser."'");
//bulunan sutun sayısını değişkene atıyoruz
$varmi=mysql_num_rows($sorgula);
/*değişken degeri 0 ise false 0 dan fazla isle true değeri döndürdüğünden değeri kontrol ettiriyoruz */
if($varmi){
//değişken degeri 0 dan fazla ise ekrana mesaj yazdırıp sayfayı durduruyoruz
echo " $yazar 'a ait $eser adlıı eser daha önce sistemde kayıtlı
kayit islemi yapılmadı lütfen başka bir kayıt girmeyi deneyin";
exit();
}
$kaydet = mysql_query("insert into defter (id, yazar, eser) values (NULL, '$yazar', '$eser')");
if($kaydet){
echo "Gönderildi";
} else{
echo "Gönderilmedi";
}
Şimdi de gönderilen tüm verilere a ya ait adlı eser daha önce sistemde kayıtlı dır mesajı veriyor ve veri tabanında boş satırlar oluşturuyor.
$yazar = $_POST['yazar'];
$eser = $_POST['eser'];
//gelen bilgileri tabloda sorgulatıyoruz
$sorgula=mysql_query("select * from defter where yazar='$yazar' and eser='$eser'");
//bulunan sutun sayısını değişkene atıyoruz
$varmi=mysql_num_rows($sorgula);
/*değişken degeri 0 ise false 0 dan fazla isle true değeri döndürdüğünden değeri kontrol ettiriyoruz */
if($varmi){
//değişken degeri 0 dan fazla ise ekrana mesaj yazdırıp sayfayı durduruyoruz
echo " $yazar 'a ait $eser adlıı eser daha önce sistemde kayıtlı
kayit islemi yapılmadı lütfen başka bir kayıt girmeyi deneyin";
}
else
{
$kaydet = mysql_query("insert into defter (id, yazar, eser) values (NULL, '$yazar', '$eser')");
if($kaydet){
echo "Gönderildi";
} else{
echo "Gönderilmedi";
}
}
sıkıntı devam ederse
1 kodu localde mi webte mi deniyorsun
2 php versiyonu nedir
3 mysql_connect atadığın değişken ismi nedir
bunlar foruma yaz yada tablonun sql ni ve kullandığın kodu zipleyip atach et göz atalım