• 20-06-2017, 17:09:17
    #1
    $db->Query("INSERT INTO surf_gecmis (user, tarih, click)VALUES('".$data['id']."',Now(),1)
    ON DUPLICATE KEY UPDATE click=click+1");

    sql de tarih kolonu date olarak ayarlı.

    aynı tarih ve user varsa sadece click i güncelleyecek, yoksa ekleyecek.

    ama olmuyor, yapmıyor. sürekli yeni kayıt ekliyor, güncellemiyor.

    neden olabilir ?

    --------------

    ÇÖZÜM :

    zaman için CURDATE() kullanıldı.
    DUPLICATE KEY UPDATE yerine if else kullanıldı.

    $gecmis = $db->QueryFetchArray("SELECT user, tarih FROM `surf_gecmis` WHERE `user`='".$data['id']."' AND `tarih`=CURDATE()");
    if(!$gecmis)
    {$db->Query("INSERT INTO `surf_gecmis` (user, tarih, click, gold) VALUES('".$data['id']."', CURDATE(),1,'".$sit['cpc']."')");
    }else
    {$db->Query("UPDATE `surf_gecmis` SET click=click+1, gold=gold+'".$sit['cpc']."' WHERE `user`='".$data['id']."' AND `tarih`=CURDATE()");
    }
  • 21-06-2017, 01:26:05
    #2
    Siz insert ediyorsunuz çünki.

    veritabanı kontrolü yaparak if komutu ile bu istediğinizi kolaylıkla yapabilirsiniz.
  • 21-06-2017, 03:21:49
    #3
    user ve tarih alanlarını primary key olarak ayarlamanız gerekmektedir.
  • 21-06-2017, 10:03:32
    #4
    chedmade adlı üyeden alıntı: mesajı görüntüle
    Siz insert ediyorsunuz çünki.

    veritabanı kontrolü yaparak if komutu ile bu istediğinizi kolaylıkla yapabilirsiniz.
    DUPLICATE KEY UPDATE var kod içinde

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 10:03:32 -->-> Daha önceki mesaj 08:05:35 --

    chedmade adlı üyeden alıntı: mesajı görüntüle
    Siz insert ediyorsunuz çünki.

    veritabanı kontrolü yaparak if komutu ile bu istediğinizi kolaylıkla yapabilirsiniz.
    $gecmis = $db->QueryFetchArray("SELECT user, tarih FROM `surf_gecmis` WHERE `user`='".$data['id']."' AND `tarih`=CURDATE()");
    if(!$gecmis)
    {$db->Query("INSERT INTO `surf_gecmis` (user, tarih, click, gold) VALUES('".$data['id']."', CURDATE(),1,'".$sit['cpc']."')");
    }else
    {$db->Query("UPDATE `surf_gecmis` SET click=click+1, gold=gold+'".$sit['cpc']."' WHERE `user`='".$data['id']."' AND `tarih`=CURDATE()");
    }

    bu şekilde oldu. fikir için sağol.