mysql sorgu nedense Katılan ondalık katına değeri ekleyerek

3 Cevap php

Ben bir mysql veritabanında bir ondalık (9,2 maksimum uzunluk) alanının değerine ($credit) bir değer eklemek çalışıyorum. Sorun bunu yaparken, bu $credit iki katına ve daha sonra bazı nedenlerden dolayı bunu ekler olmasıdır. Ben sadece bunu eklemek istiyorum. Ben kullanıyorum kodu:

mysql_query("update $table set earnings = earnings +$credit where username = ('$member')");

Ben kazanç denilen alana $credit değerini eklemek istiyorum. Onu eklemeden önce $credit değerini iki katına neden birileri biliyor mu?


Update

Ben sorgu yankılandı ve ben katıyordu değeri gerçekten $ kredi değerinin doğru olduğunu gördüm. Ve sonra ben karları altında veritabanı kontrol ve doğru değeri eklemişti. Kendisini otomatik olarak sabit neden bilmiyorum. Ben o ben script ajax üzerinde prototip ile her 5 saniyede bir çalışan var çünkü iki kez çalıştırmak için kullanılan mümkün olduğunu düşünüyorum. $ Kredi başarıyla eklendikten sonra ben başka bir veritabanına giriş Ben daha önce eklendiği olduğunu söyleyerek ve yapmak:

if(database says that the credit was added) { 
  exit;
}else{ 
  run the add $credit query

Yani belki, script yüzden nedense yeniden ve daha sonra eklersiniz yazmak için yeterli zaman o $ kredi ilavesi tamamlandıktan diğer veritabanı söylemek asla yani 5 saniye içinde her şeyi bitirmek için yeterli zaman var olmazdı Bu onu ikinci kez tamamladı? Biliyorum, ama teşekkürler neyse yardım için değil.


Ben sorgu yankılandı ve ben katıyordu değeri gerçekten $ kredi değerinin doğru olduğunu gördüm. Ve sonra ben karları altında veritabanı kontrol ve doğru değeri eklemişti. Kendisini otomatik olarak sabit neden bilmiyorum. Ben o ben script ajax üzerinde prototip ile her 5 saniyede bir çalışan var çünkü iki kez çalıştırmak için kullanılan mümkün olduğunu düşünüyorum. $ Kredi başarıyla eklendikten sonra ben başka bir veritabanına bir entry var önce o eklenmiş olduğunu söyleyerek ve yapmak

if(database says that the credit was added){ exit;

} Else {add $ kredi sorguyu çalıştırın

böylece belki, komut dosyası bu yüzden nedense yeniden ve daha sonra eklersiniz yazmak için yeterli zaman o $ kredi ilavesi tamamlandıktan diğer veritabanı söylemek asla yani 5 saniye içinde her şeyi bitirmek için yeterli zaman var olmazdı Bu onu ikinci kez tamamladı? Biliyorum, ama teşekkürler neyse yardım için değil.

3 Cevap

Ne olacağını görmek için bunu yapın

$sql = "update $table set earnings = earnings +$credit where username = ('$member')";
echo $sql;
mysql_query($sql);

Ve yankı üretir görmek.

Onu oradan.

DC

Benim kendi şeyler ama bir şey hakkında yorum yapmak mümkün olmayan sinir bozucu. Be o olacak ...

Javascript bulduğun her 5 saniyede biterse o çok daha kısa bir sürede iki kez çalışır. Bu doğruluk zamanlayıcı geldiğinde javascript vurmak ve vuramamak bir olaydır. bu yüzden güvenmeyin.

Ayrıca istemci tarafında, yani birisi sadece bir saniye her saniye ya da 20 kez işlevini çağırarak kendi kazançlarını şişirmek javascript gibi. Güvenliği hakkında aşağıda Benim yorumum her zamankinden daha önemlidir. Ben kesinlikle onların esas kazançların herkes gerçek para ödemezsiniz umuyoruz.

Eğer ben url olabilir yoksa lütfen ;)

DC

Olması gerektiği gibi görünmüyor. Bu SQL sorgusu kez çalıştırmak mümkün mü?

Sizin güncelleme ifadesi doğru görünüyor. Ben $ kredi değeri önceki güncelleştirmenin doğru olduğunu, ve aynı zamanda güncelleştirme yalnızca bir kez çalıştığından emin olmak için emin olmak için bazı hata ayıklama mesajları eklemek istiyorum.