<?PHP
$ddel = time() + 60*60*24;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM db_bonus_list2 WHERE user_id = '$usid' AND date_del > '$dadd'");
$hide_form = false;
if($db->FetchRow() == 0){
# Bonus verilir
if(isset($_POST["bonus"])){
$sum = rand($bonus_min, $bonus_max);
$db->Query("UPDATE db_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
# Bonuslar listesi
$db->Query("INSERT INTO db_bonus_list2 (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
# Eski kayıtların silinmesi
$db->Query("DELETE FROM db_bonus_list2 WHERE date_del < '$dadd'");
echo "<center><font color = 'blue'><b>{$sum} Bonus Hesabına Yatırıldı</b></font></center><BR />";
$hide_form = true;
}
if(!$hide_form){
?>yukarıda verdiğim kodlar ile bonus veriyorum oyuncuya önce düzgünce çalısırken birden şu hatayı almaya başladım " Duplicate entry '0' for key 'PRIMARY'" burada nasıl bir hata oluşmuş olabilir
if($db->FetchRow() == 0) kodu ile hata yardım lütfen
7
●259
- 13-11-2017, 03:14:15
- 13-11-2017, 03:28:58"Duplicate entry '0' for key 'PRIMARY'" bu hatanın devamınıda yazarmısın index veya benzersiz tanımlanmış bir alana aynı girdiden yazmak istiyorsun gibi ama hatanın devamınıda yazarsan daha net bi çözüm bulabiliriz.
Birde db_bonus_list2 tablosunu onar ve tekrar dene bakalım ne olacak.
Kolay gelsin. - 13-11-2017, 03:33:08CoLLeR adlı üyeden alıntı: mesajı görüntüle
hata sadece bukadar baska birşey yazmıyor ve onardım tabloyu birşey değişmedi - 13-11-2017, 03:37:13çok inceleme fırsatım olmadı lakin
$db->Query("INSERT INTO db_bonus_list2 (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
her bonus alınırken insert into veriyorsunuz eğer ki user, user_id tablolarından birisi PRIMARY olarak tanımlı ise unique olmak zorundadır. yani aynı tabloda user, user_id tablolarından birisi primary ise aynı user ve ya user id bulunamaz.
Eğer bunlardan birisi primary ise bir adet sadece id yada Unique_id ekleyin onu primary yapınve Auto incredemnt özelliğini açın sizde isnert ederken maneul müdahalede bulunmayın
konuyu tam okuyamaıdm ama dublicate entry hatası sadece unique olması gereken primary bir area ya ikinci bir veri yazılmaya çalıştığında verir ve tek insert kodunuzda orası olduğuna göre insert variablelarınızdan birisi primary olmalı saygılar - 13-11-2017, 03:39:51mahirtaha adlı üyeden alıntı: mesajı görüntüle
yapı içerisinde eylem olarak PRIMARY vardı onu index yapınca düzeldi ama bu bir hata veya açığa nedne olur mu ? - 13-11-2017, 03:46:42Aşağıdaki satırların yerini değiştirerek denermisin.mehmet0715 adlı üyeden alıntı: mesajı görüntüle
Birde db_users_b tablosunuda onarmayı denermisin.
Bu zamana kadar bu hatayı almayıp şimdi alman ilginç olmuş ne kadar süredir kullanıyorsun.
$db->Query("DELETE FROM db_bonus_list2 WHERE date_del < '$dadd'");$db->Query("INSERT INTO db_bonus_list2 (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')"); - 13-11-2017, 03:55:46mahirtaha adlı üyeden alıntı: mesajı görüntüleikinizin dediğinide yaptım olmadı bende yapıyo komple baştan kurdum aynı şekilde çalıştıCoLLeR adlı üyeden alıntı: mesajı görüntüle