2010-06-22 10 views
6

मैं php और एसक्यूएल करने के लिए नया हूँ, और मैं कैसे एसक्यूएल क्वेरी का एहसास करने के बारे में एक छोटे से सवाल है, कि कर सकते हैं:PHP/MySQL के पृष्ठांकन

  • डीबी से उदाहरण के लिए 5 प्रविष्टियों ले लो, उन्हें 1 पर डालने पेज (1-5)
  • से ही डीबी से अगले 5 प्रविष्टियों लेने के लिए और एक और पृष्ठ पर उन्हें सम्मिलित (5-10)
    और इतने पर :)

धन्यवाद)

+0

के संभावित डुप्लिकेट [बिना डबल क्वेरी MySQL पृष्ठांकन?] (Http://stackoverflow.com/questions/818567/mysql-pagination-without-double-querying) –

उत्तर

5
SELECT col FROM table LIMIT 0,5; -- First page, rows 1-5 
SELECT col FROM table LIMIT 5,5; -- Second page, rows 6-10 
SELECT col FROM table LIMIT 10,5; -- Third page, rows 11-15 

LIMIT section on the MySQL SELECT सहायता पृष्ठ पढ़ें। यदि आप उपलब्ध पंक्तियों की कुल संख्या प्रदर्शित करना चाहते हैं, तो आप या तो अतिरिक्त गिनती कर सकते हैं, या ROW_COUNT फ़ंक्शन का उपयोग कर सकते हैं।

0

ऐसा करने के कई तरीके हैं, मुझे लगता है कि सबसे तेजी से प्रदर्शन एक पीछा कर रहा है:

$ItemsPerQuery = 5; 
$CurrentPage = 0; //here you can add the current site through $_GET array or other ways, but don't forget to use mysql_real_escape_string(), because of mysql injection 

$Query = mysql_query("SELECT * FROM table LIMIT ".($ItemsPerQuery*$CurrentPage).",".$ItemsPerQuery); 

while($row = mysql_fetch_assoc($query)) 
{ 
    echo $row['column_name']; 
} 

सामग्री का उपयोग करना चाहिए:

+0

हाँ, अच्छी तरह से धन्यवाद) मैं की तरह कुछ मिल गया यह मेरे सिर में था, लेकिन इसका कोई विचार नहीं था कि इसे उचित तरीके से कैसे महसूस किया जाए। – user313216

+0

यह सही नहीं है, पृष्ठ 1 पहली 5 प्रविष्टियां नहीं दिखाएगा, प्रारंभिक सीमा 1 * 5 है, 0 होना चाहिए और पूरी तरह से यह होना चाहिए ($ आइटमपेरक्चर * $ CurrentPage - $ ItemsPerQuery) – cypher

+0

uhm, true :) '$ CurrentPage' 0 होना चाहिए, क्योंकि 0 * 5 = 0। क्षमा करें –

0

यदि आपकी क्वेरी एक निषिद्ध नहीं लौटती है परिणामों की मात्रा, एक टेबेलॉर्टर फ़ंक्शन के साथ इसे पृष्ठ पर रखने के लिए Jquery का उपयोग करने पर विचार करें। यह फ्लाई पर एक उचित स्वरूपित HTML तालिका और पेज, प्रकार इत्यादि लेता है ... यदि आप चाहें तो अतिरिक्त क्वेरी चर के लिए कोई आवश्यकता नहीं है। पूर्ण फ्लाइंग PHP पेजिंग रूट जाने से यह इतना आसान है, और उपयोगकर्ता के लिए बहुत तेज़ है।

मेरा व्यक्तिगत पसंदीदा उदाहरण यहाँ है: http://datatables.net/

यह पूरी तरह से अपनी आवश्यकताओं के अनुरूप नहीं हो सकता है, लेकिन यह कई अनुप्रयोगों के लिए अच्छा है। यदि आप ऐसा करते हैं, तो अपनी तालिका को थैड और टैब के साथ प्रारूपित करना न भूलें ताकि यह तालिका तत्वों को सही तरीके से उठा सके।

संबंधित मुद्दे