• 05-04-2018, 16:35:19
    #1
    Meraba arkadaşlar;Veritabanımdaki bir balümü sürekli update yapıyorum. Ziyaretçi sayfaya her girdiğinde bu olay gerçekleşiyor. Ayrıca aynı ID yi 4-5 farklı sayfa açıyor. 1 saat süreli Html cache kullanıyorum. Şimdi update yapılan sayfa, bir diğer sayfa tarafından 10 dk sonra tekrar update yapılabiliyor. Toplam 15bin ID var ve sürekli hepsi aktif. Her seferinde update yapması sunucuyu yoruyor. Yapmak istediğim her update yaptığında zaman ekleyip, eğer zaman 1 saat veya 2 saat geçmişse update yapılsın, Yoksa yapılmasın. MYSQL ve PHP kullanarak bunu nasıl yapabilirim. Yardımcı olursanız sevinirim.
  • 05-04-2018, 18:40:22
    #2
    settimeout kullanarak zamanlayici ayarlayabilir ve zaman bittiği anda güncelleme yapabilirsiniz
  • 06-04-2018, 20:46:08
    #3
    hekes aynı yeremi sorgu gönderiyor? yoksa kendi ID sine mi gönderiyor?



    anladığım kadarıyla herkes kendi alanına sorgu gönderiyor.

    şöyle bir senaryo yapabiliriz.


    tanloya sonupdate vbb bir alan ekleyin (tabi yoksa)


    daha sonra update tablo set kolon=‘her neyse’ where ID=@gelenID and sonupdate<dateadd(hour,2,sonupdate)


    gibi bir şart ekleyebilirsiniz. telden yazdım yazım hataları için kusura bakmayın



    şartı ters yazmışım bu arada tam tersi olacak
  • 09-04-2018, 06:40:25
    #4
    Aktifhosting adlı üyeden alıntı: mesajı görüntüle
    hekes aynı yeremi sorgu gönderiyor? yoksa kendi ID sine mi gönderiyor?




    anladığım kadarıyla herkes kendi alanına sorgu gönderiyor.

    şöyle bir senaryo yapabiliriz.


    tanloya sonupdate vbb bir alan ekleyin (tabi yoksa)


    daha sonra update tablo set kolon=‘her neyse’ where ID=@gelenID and sonupdate<dateadd(hour,2,sonupdate)


    gibi bir şart ekleyebilirsiniz. telden yazdım yazım hataları için kusura bakmayın




    şartı ters yazmışım bu arada tam tersi olacak
    Cevap için teşekkürler. Öncelikle her sayfa aynı ID ye sorgu gönderiyor. Ne kadar başarılı olur bilmem ama şöyle bir yöntem uyguladım. Şu an problem yok.
    $uptime= time();  #Veritabanına uptime olarak kayıt etmek için
    $SearchResult=mysql_query("select * from tbl_veri where id='$id'" ) or die(mysql_error());
    While($row = mysql_fetch_object($SearchResult)) {
    $upt = $row->uptime ;
    $uptime_new = $upt + "356000";
    
    if($uptime_new<$uptime){
    #Eğer ortalama 1 saat süre geçmişse yapılması gerekn işlemler
    }
  • 09-04-2018, 14:40:48
    #5
    kommagene adlı üyeden alıntı: mesajı görüntüle
    Cevap için teşekkürler. Öncelikle her sayfa aynı ID ye sorgu gönderiyor. Ne kadar başarılı olur bilmem ama şöyle bir yöntem uyguladım. Şu an problem yok.
    $uptime= time();  #Veritabanına uptime olarak kayıt etmek için
    $SearchResult=mysql_query("select * from tbl_veri where id='$id'" ) or die(mysql_error());
    While($row = mysql_fetch_object($SearchResult)) {
    $upt = $row->uptime ;
    $uptime_new = $upt + "356000";
    
    if($uptime_new<$uptime){
    #Eğer ortalama 1 saat süre geçmişse yapılması gerekn işlemler
    }
    Aynı ID ise benim yöntem işe yaramaz, bu şekilde sonuç alabilirsiniz bence gayet güzel olmuş