What is the ideal way to keep track of the total count of items when dealing with paged results?
Bu ilk bakışta basit bir soru gibi görünüyor ama aslında verimli bir şekilde nasıl düşünmeye başladığınızda (kelimeler için bu çok aptal bulursan bana ... şimdi kefaletle) biraz daha karmaşıktır.
Ben veritabanından öğelerin sayısını almak gerekiyor. Bu kadar basittir. Daha sonra bazı değişken bu sayımı (örneğin bir $ _SESSION değişkeni) saklayabilirsiniz. Ben bu değişken ayarlanmış olup olmadığını görmek için kontrol edin ve eğer değilse, yine sayı alabilirsiniz. Hile bölümü yeni bir sayı elde etmek için gerektiğinde belirlemek için en iyi yolu nedir karar vermektir. Ben, tekrar yükleme veya ızgara yeniden ziyaret ediyorsam ben toplam / silinmiş öğeler eklenmiş, yeni bir sayımı almak gerekir ya da gözüküyor.
Peki, ben bu $ _SESSION değişkeni temizlemek için ne zaman karar verecek? Onu takas ve bir güncelleme / silme (hatta ekleyerek veya potansiyel pahalı veritabanı isabet önlemek için kendisine çıkarılarak) sonra yeni bir sayımını elde görebilirsiniz ama ne birisi uzakta sayfasından gittiğinde yaklaşık (burada zor buluyorum kısım geliyor) veya sonuçların bir sonraki sayfaya gitmeden önce bir zaman değişken miktarda bekler veya sayfayı yeniden yükler?
Biz onlarca veya yüzlerce sonuçlarının binlerce, veritabanından onları sayısı oldukça pahalı olabilir alma ile ilgili olabilir bu yana (sağ? Ya da benim varsayım yanlıştır?). Ben belleği sonuçlarında sayfaların toplam sayısını işlemek için toplam sayıyı gerekir çünkü ... durum bu tür işlemek ve için devam etmek en verimli şekilde sürece ihtiyaç duyulduğu gibi ... ne?
BTW, ben gibi bir SQL sorgusu ile sayısı almak olacaktır:
SELECT COUNT(id) FROM foo;