Eğer güncellenemeya çalışılan değer değişmiyorsa SQL Updata işlemini zaten yapmaz. (effectedrow = 0 olur yani)

Diğer bir çözüm: Sitede gezilen her sayfada kullanıcının SESSION değerini bir tabloya kaydeder, yanına da tıklama zamanını not alırsınız. Yani, "kullanıcılar" değil de "gezenler" gibi bir tabloda çalışabilirsiniz. Bunun faydası: Online kişi adedini izleyebilirsiniz. Dez avantajı: Kimler online göremezsiniz. Bunu da görmek isterseniz "gezenler" tablosuna kullanıcı adını da not etmeniz gerekir.

Selamlar....

Guychmyrat Amanmyradov yazmış:

Her kişi girdiğinde bütün kayıtlarda dolaşma olmıycak mı sonuçta ?
1 saniyede 100 kişi giriş yapıyor ise 1 saniyede 1 mln kayıt gereksiz yere taranmış olmayacak mı ?

Ajax callerin asıl sebebi, 5 dk aynı sayfada hareket etmeden kalmışsa. Kopmamak için. Özellikle sistemde chat varsa bo çok önemli oluyor. Şöyle düşünün ben siteye girdim online oldum. birisi ile chat yapıyorum. Sayfamı değiştirmeden 5 dk kaldım. Bu durumda ben sitede olsam dahi offline olucam. Karşı taraf sanacak ki ben offline oldum. Halbuki ben sitedeyim. Sadece 5 dk boyunca hareket ettim. İşte bu problemi çözmek için ajax çalışsa o problemi çözer dedim.

mln üyesi olan sitede günlük en fazla 50.000 kişi aktif olacakğını farz edersek, herkesi offline yapmak yerine (tüm kayıtlarda dolaşmak yerine) sadece ilgililerin değerini güncellemek daha iyi olur diye düşünüyorum. Aslında offline / online sütunu olmasa da olur. O olmadığını düşündüğümüzde saten ismini soyismini çekiyoruz onun yanında bir sütun çekip tarihine bakmak db-yi yormaz. Öyle değil mi ?

--- *15/10/09 Per tarihinde Omer Barlas /<o...@barlas.com.tr>/* şöyle yazıyor:


    Kimden: Omer Barlas <o...@barlas.com.tr>
    Konu: [Linux-programlama] Re: Online offline olayını nasıl
    tutuyorsunuz ?
    Kime: "Özgür yazılımlarla çeşitli dillerde yazılım geliştirme"
    <linux-programlama@liste.linux.org.tr>
    Tarihi: 15 Ekim 2009 Perşembe, 10:29

    Guychmyrat Amanmyradov @ 15-10-2009 10:13:
    > Başka çözümü olan varmı ? Sizinde fikrinizi sorayım dedim. Belki
    daha
    > ogjinal çözüm vardır.

    kullanıcı tablosunda bir adet "son tıklama" kolonu bulunur, her
    tıklamada
    kullanıcının tıklama saati kolona eklenir.

    birisi login olduğunda da iki sql çalıştırılır;
    1. UPDATE kullanicilar SET Durum="OFFLINE" WHERE sonTiklama <
    TIME()-300;
    2. UPDATE kullanicilar SET Durum="ONLINE", sonTiklama=TIME() WHERE
    kullanicilar.Id = '....

    birincisi anlaşılacağı üzere kullanıcı DB'sinde son 5 dakikadır
    hareket
    etmemiş tüm kullanıcıları offline eder, ikincisi ise kullanıcının son
    tıklama saatini günceller. böylece ne cron, ne ajax'a gerek
    kalmaz, her
    kullanıcı hareketinde herşey otomatikman gerçekleşir.

-- Omer Barlas
    o...@barlas.com.tr </mc/compose?to=o...@barlas.com.tr>
    _______________________________________________
    Linux-programlama mailing list
    Linux-programlama@liste.linux.org.tr
    </mc/compose?to=linux-programl...@liste.linux.org.tr>
    http://liste.linux.org.tr/mailman/listinfo/linux-programlama


------------------------------------------------------------------------
Yahoo! Türkiye açıldı!
Haber, Ekonomi, Videolar, Oyunlar hepsi Yahoo! Türkiye'de!
www.yahoo.com.tr
------------------------------------------------------------------------

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap