• 09-08-2009, 23:31:02
    #1
    Merhaba arkadaşlar.

    Biraz yardımınıza ihtiyacım var.

    Basit bir oyun hazırlıyorum oyunda banka olayı var. Oyuncular bankaya para atabilecek. Fakat $_POST[toplanan] sadece rakam içermeli. Aşağıda aldığım hatanın çıktısı var. Yanlışlıkla virgül yada başka bir karakter eklendiğinde hata veriyor. Acaba bu hatayı nasıl giderebilirim ?
    str_replace vs denedim ama belkide yanlış kullanmış olabilirim, beceremedim. Yardımcı olabilecek bir arkadaş varsa şimdiden teşekkür ederim.

    Sorgu
    ---------------------------------------------------------------
    $res = query("UPDATE `banka` SET `btoplam`=(`btoplam`+$_POST[toplanan]) WHERE `userid`=$user");

    Hata
    ---------------------------------------------------------------
    Invalid query -- UPDATE `banka` SET `btoplam`=(`bamount`+89,19092)
  • 10-08-2009, 00:16:02
    #2
    is_numeric ile değişkenin sayısal olup olmadığını kontrol edebilirsiniz. Mesela şöyle yaparsanız
    if (is_numeric($_POST['toplanan'])){yapılacaklar}
    $_POST[toplanan] değişkeni sayısal değilse işlem yapılmaz.
  • 10-08-2009, 00:32:52
    #3
    Teşekkür ederim hoş oldu. Şimdilik sanırım böyle olması yeterli. Forma tekrardan dönüş yapıyor ama çözüm bulana kadar işimi görecek. Tekrar teşekkürler.
  • 10-08-2009, 01:02:32
    #4
    Rica ederim.
  • 10-08-2009, 03:06:43
    #5
    is_numeric sadece gelen verinin digit olup olmadığını kontrol eder, ama eleman mesela 10 TL gibi birşey yazdıysa hata verir, bu durumda gelen veriyi temizleyip sadece sayısal kısmı veritabanına şu şekilde gönderebilirsin..

    $veri = 'bu bir 5?0&5 5664Ş A65 44 karışık veridir*-';
    
    $temizle = preg_replace('#[\D]#', '',$veri);
    
    echo trim($temizle);
  • 10-08-2009, 10:22:46
    #6
    Üyeliği durduruldu
    birde şurda hata yapiyorsunuz Türkçe ondalık ayıracı virgül iken ingilizce ondalık ayiraci noktadir. bu hususa dikkat etmelisiniz bence
  • 16-09-2009, 21:09:31
    #7
    Enigmatic çok teşekkür ederim. İşimi tam anlamıyla gördü. Ayrıca diğer arkadaşlarada ilgilerinden dolayı teşekkür ederim