Translate

PHP में Pagination कैसे बनाएं. एक विस्तृत मार्गदर्शिका और उदाहरण


जब हम किसी डेटाबेस से डेटा प्राप्त करते हैं, तो कभी-कभी वह डेटा बहुत अधिक मात्रा में होता है। ऐसे में सभी डेटा को एक पेज पर दिखाना यूज़र एक्सपीरियंस को खराब कर सकता है और वेबसाइट की गति भी धीमी कर सकता है। इस समस्या को हल करने के लिए हम Pagination (पेजिनेशन) का उपयोग करते हैं। पेजिनेशन की मदद से हम डेटा को छोटे-छोटे पेजों में विभाजित कर सकते हैं और यूज़र को एक समय में सीमित डेटा दिखा सकते हैं।

इस ब्लॉग में हम सीखेंगे कि PHP में Pagination कैसे बनाएं। हम एक उदाहरण के माध्यम से समझेंगे कि कैसे हम डेटाबेस से डेटा प्राप्त करें और उसे पेजिनेशन के साथ प्रदर्शित करें।

1. Pagination का महत्व

जब डेटा बहुत बड़ा हो, तो उसे एक ही पेज पर दिखाने से पेज लोडिंग टाइम बढ़ सकता है और यूज़र को पेज स्क्रॉल करने में परेशानी हो सकती है। Pagination की मदद से, हम डेटा को पेजों में विभाजित करते हैं, जिससे:

  • पेज लोड समय कम होता है।

  • यूज़र को डेटा नेविगेट करने में आसानी होती है।

  • वेबसाइट की परफॉर्मेंस बेहतर होती है।

2. Pagination का कार्यप्रणाली

Pagination काम करता है दो प्रमुख तत्वों पर:

  1. Limit: यह निर्धारित करता है कि एक पेज पर कितने रिकॉर्ड्स दिखाए जाएंगे। उदाहरण के लिए, यदि एक पेज पर 10 रिकॉर्ड्स दिखाने हैं, तो हमें SQL क्वेरी में LIMIT 10 का उपयोग करना होगा।

  2. Offset: यह निर्धारित करता है कि डेटा को कहां से लोड किया जाए। उदाहरण के लिए, यदि हम दूसरी पेज पर जा रहे हैं, तो हम OFFSET 10 का उपयोग करेंगे, जिससे अगले 10 रिकॉर्ड्स प्राप्त होंगे।

3. PHP में Pagination कैसे बनाएं

चरण 1: डेटाबेस कनेक्शन सेटअप

सबसे पहले, हम MySQL डेटाबेस से कनेक्ट करेंगे और एक टेबल से डेटा प्राप्त करेंगे। यहां हम एक उदाहरण के रूप में students नामक टेबल का उपयोग करेंगे, जिसमें छात्रों के नाम, ईमेल और उनके अंक होंगे।

php
<?php // डेटाबेस कनेक्शन सेटअप $servername = "localhost"; $username = "root"; $password = ""; $dbname = "testdb"; // कनेक्शन बनाएं $conn = new mysqli($servername, $username, $password, $dbname); // कनेक्शन चेक करें if ($conn->connect_error) { die("कनेक्शन विफल: " . $conn->connect_error); } ?>

चरण 2: डेटा प्राप्त करने के लिए SQL क्वेरी

अब हम डेटाबेस से डेटा प्राप्त करेंगे। इसके लिए हम SQL में LIMIT और OFFSET का उपयोग करेंगे ताकि हम पेजिनेशन का कार्य कर सकें।

php
<?php // एक पेज में कितने रिकॉर्ड्स दिखाने हैं $records_per_page = 10; // वर्तमान पेज को प्राप्त करें $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // OFFSET के लिए सही मान सेट करें $offset = ($page - 1) * $records_per_page; // SQL क्वेरी को सेट करें $sql = "SELECT * FROM students LIMIT $records_per_page OFFSET $offset"; $result = $conn->query($sql); // डेटा दिखाने के लिए if ($result->num_rows > 0) { echo "<table border='1'> <tr> <th>ID</th> <th>Name</th> <th>Email</th> <th>Marks</th> </tr>"; while ($row = $result->fetch_assoc()) { echo "<tr> <td>" . $row['id'] . "</td> <td>" . $row['name'] . "</td> <td>" . $row['email'] . "</td> <td>" . $row['marks'] . "</td> </tr>"; } echo "</table>"; } else { echo "कोई डेटा नहीं मिला।"; } ?>

व्याख्या:

  1. $records_per_page: यह निर्धारित करता है कि एक पेज पर कितने रिकॉर्ड्स दिखाए जाएंगे। इस उदाहरण में, हम 10 रिकॉर्ड्स प्रति पेज दिखाएंगे।

  2. $page: यह यूज़र द्वारा चुने गए पेज को प्राप्त करता है। यदि पेज का मान सेट नहीं होता, तो डिफ़ॉल्ट रूप से हम पहले पेज पर रहते हैं (पेज 1)।

  3. $offset: यह निर्धारित करता है कि SQL क्वेरी में किस रिकॉर्ड से डेटा लोड करना है। अगर पेज 1 है, तो हम 0 से लोड करेंगे, पेज 2 के लिए 10 से और पेज 3 के लिए 20 से।

  4. SQL क्वेरी: LIMIT और OFFSET का उपयोग करके हम डेटा को पेजिनेशन के हिसाब से प्राप्त करते हैं।

चरण 3: Pagination Links बनाना

अब हमें पेजिनेशन के लिए लिंक बनाने होंगे, ताकि यूज़र अगला पेज देख सके। इसके लिए हम पेजों की कुल संख्या जानने के लिए एक और SQL क्वेरी करेंगे।

php
<?php // कुल रिकॉर्ड्स की संख्या प्राप्त करें $sql_count = "SELECT COUNT(*) AS total FROM students"; $result_count = $conn->query($sql_count); $row_count = $result_count->fetch_assoc(); $total_records = $row_count['total']; // कुल पेजों की संख्या $total_pages = ceil($total_records / $records_per_page); // पेजिनेशन लिंक दिखाएं echo "<div>"; for ($i = 1; $i <= $total_pages; $i++) { if ($i == $page) { echo "<strong>$i</strong> "; // वर्तमान पेज को बोल्ड करें } else { echo "<a href='?page=$i'>$i</a> "; // अन्य पेजों के लिए लिंक } } echo "</div>"; ?>

व्याख्या:

  1. $total_records: यह कुल रिकॉर्ड्स की संख्या को प्राप्त करता है।

  2. $total_pages: यह कुल पेजों की संख्या को प्राप्त करता है। ceil() फंक्शन का उपयोग करके हम पेजों की संख्या को पूरा करते हैं।

  3. Pagination Links: हम सभी पेजों के लिए लिंक बनाते हैं। यदि यूज़र वर्तमान पेज पर है, तो उस पेज को बोल्ड किया जाता है, अन्यथा पेज पर क्लिक करने के लिए लिंक दिखाए जाते हैं।

4. पूर्ण कोड उदाहरण

php
<?php // डेटाबेस कनेक्शन सेटअप $servername = "localhost"; $username = "root"; $password = ""; $dbname = "testdb"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("कनेक्शन विफल: " . $conn->connect_error); } // पेजिनेशन के लिए सेटिंग $records_per_page = 10; $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $offset = ($page - 1) * $records_per_page; // डेटा प्राप्त करें $sql = "SELECT * FROM students LIMIT $records_per_page OFFSET $offset"; $result = $conn->query($sql); // डेटा दिखाने के लिए if ($result->num_rows > 0) { echo "<table border='1'> <tr> <th>ID</th> <th>Name</th> <th>Email</th> <th>Marks</th> </tr>"; while ($row = $result->fetch_assoc()) { echo "<tr> <td>" . $row['id'] . "</td> <td>" . $row['name'] . "</td> <td>" . $row['email'] . "</td> <td>" . $row['marks'] . "</td> </tr>"; } echo "</table>"; } else { echo "कोई डेटा नहीं मिला।"; } // कुल रिकॉर्ड्स की संख्या प्राप्त करें $sql_count = "SELECT COUNT(*) AS total FROM students"; $result_count = $conn->query($sql_count); $row_count = $result_count->fetch_assoc(); $total_records = $row_count['total']; // कुल पेजों की संख्या $total_pages = ceil($total_records / $records_per_page); // पेजिनेशन लिंक दिखाएं echo "<div>"; for ($i = 1; $i <= $total_pages; $i++) { if ($i == $page) { echo "<strong>$i</strong> "; // वर्तमान पेज को बोल्ड करें } else { echo "<a href='?page=$i'>$i</a> "; // अन्य पेजों के लिए लिंक } } echo "</div>"; // कनेक्शन बंद करें $conn->close(); ?>

5. निष्कर्ष

इस ब्लॉग में हमने सीखा कि PHP में Pagination कैसे बनाई जाती है। हमने डेटाबेस से डेटा प्राप्त करने, उसे पेजिनेशन के साथ दिखाने और पेजिनेशन लिंक बनाने के पूरे प्रक्रिया को समझा। Pagination से यूज़र को वेबसाइट पर डेटा नेविगेट करना आसान होता है और वेबसाइट की प्रदर्शन क्षमता भी बढ़ती है।

Pagination का उपयोग करके हम बड़े डेटा को छोटे भागों में विभाजित कर सकते हैं और वेबसाइट की गति को बेहतर बना सकते हैं।