Sayfa kontrolünü gerçekleştirmek için nasıl?

3 Cevap php

Ne demek istediğimi sayfanızın öğelerin miktarı hakkında bilgi almak ve gereken LİMİT ile sql sorgusu yapmak için en etkili yoldur. ya da ben tüm öğeleri ve php fonksiyonları ile daha sonra mahsul dizi almak gerekir?

şimdi ben 2 sorguları yapmak: İlk ben LİMİTİ ile ihtiyacınız olan eşyaları almak için tüm öğeleri ve ikinci saymak.

Tamam, ben daha somut olacak. Örneğin benim sayfa ve bu soruya 20 cevap üzerine bir soru göstermek gerekir. Sonraki, önceki sayfaya ve benzeri linkler: altta sayfa kontrolü var shold. Ben bağlantıların (answers/20 sayısı) uygun sayısını göstermek istiyorum ve ben herhangi bir bağlantı için gittiğinizde (örneğin 41 3d sayfadaki 60) doğru cevaplar almak istiyorsanız. Yani bağlantıların doğru sayısını göstermek için öğeler (cevapları) sayısını almak için ve her bağlantı için doğru cevaplar almak için en iyi yolu nedir?

3 Cevap

Biraz sayfalamayı veya benzer yapmak kadar okuduğunuz olacak satır sayısını sayısını istiyorum varsayarak yaşıyorum? Ben soru bağlamında LİMİTİ için ihtiyaç anlamıyorum. Sadece bulundu kaç satır sayımını istiyorsanız Ancak, aşağıdakilerden birini kullanın.

Gibi tüm satır sayısını seçin:

select count(*) as counted, name, address
from contact

Veya satırları bulundu:

SELECT SQL_CALC_FOUND_ROWS, name, address
from contact

Bu emin değilim MySQL özgü olabilir.

Güncelleme:

(Psuedocode) - pagination için, aşağıdaki gibi bir şey yapacağını

$rows = array($result)
$num_rows = sql_calc_found_rows
$per_page = 20
$pages = ceil($num_rows / $per_page)

page
$rows_this_page = array()
$rows_this_page = get_values($rows, (min index)$page_number * $per_page - $per_page, (max index)$page_number * $per_page - 1)

Ben your'e Eğer sorguda orada kaç ürün / cevap biliyorum ama sadece sayfalandırmada, defada 20 adete kadar okumak istiyorum söylemeye çalışıyor sanırım.

Birincisi: Gerçekten Sayfalandırması paketi için bakmak gerekir; bir sürü insan ve daha önce aynı sorun vardı ve muhtemelen ücretsiz / açık kaynak kodlu ve programlama dili ve çerçevesi için özel çözümler hem de orada var. (Eğer kullandığınız dil ne derseniz ben birisi sizin için bir çözüm öneriyoruz eminim.)

Her neyse, ben I işlerin nasıl bilmek ister biliyorum, bu nedenle bu genellikle yapar nasıl:

Bildiğim kadarıyla sayfalama kodu kullanarak bir sorgu yaparak sayfalarını hesaplar bildiğimiz gibi select count(*) from tblX where something ürün başına sayfa sayısı ile bu sayıyı bölmek ve tavan (örn. 4.1 => 5) kullanın.

Sayfa başına sonuçları listeleyen bir new sorgu gereklidir; sayısı sorgu korkunç size DO NOT DO THAT (yani this page üzerine üst hikaye olmak için recipie bulunuyor) gerekmez olanlar atarak her sonuç almak çok daha hızlıdır endişelenmeyin. ; Gibi select * from tblX where something limit Y offset Z, burada Y sayfa başına öğe sayısı ve Z (requested_page - 1)*Y şeydir (thats ne Y) vb sayfa 1 0 ofset olacak, sayfa 2 20 ofset var.

Ama bu bir hazır çözüm özelleştirme zaman kullanmak çok daha iyi, eğilimli, gereksiz sıkıcı ve hata var, elle bu uygulamaya kalkmayın.

Ben biraz daha spesifik soru ile olmak zorunda düşünüyorum. Örneğin, "sayfanızın öğeleri" ne demek istiyorsun? HTML FORM elemanları için başvuruyorsunuz? Lütfen sorguları ne yapmalıyım? Amacı nedir? Rephrase Lütfen.