Pagination (পেজিনেশন) হল একটি কৌশল যা ওয়েব অ্যাপ্লিকেশনে বড় ডাটাবেস থেকে ডেটা দেখানোর জন্য ব্যবহৃত হয়। সাধারণত, পেজিনেশন ব্যবহার করে একটি নির্দিষ্ট সংখ্যক রেকর্ড একবারে দেখানো হয় এবং ইউজার সহজেই পরবর্তী বা পূর্ববর্তী পৃষ্ঠাগুলিতে নেভিগেট করতে পারেন। MySQLi ব্যবহার করে পেজিনেশন তৈরি করতে হলে, আপনাকে ডাটাবেসের কুয়েরি প্রক্রিয়াকে এমনভাবে ডিজাইন করতে হবে যাতে শুধুমাত্র নির্দিষ্ট সংখ্যক রেকর্ড একসাথে লোড হয়, যা একটি পেজে দেখানো যাবে।
Pagination এর মূল ধারণা
Pagination এর মাধ্যমে, একবারে পুরো ডাটাবেস থেকে সমস্ত রেকর্ড লোড না করে, একটি নির্দিষ্ট সংখ্যক রেকর্ড লোড করা হয়। এটি ইউজারের জন্য তথ্যের লোডিং গতি উন্নত করে এবং সার্ভার ও নেটওয়ার্কের উপর লোড কমায়।
Pagination সাধারণত তিনটি প্রধান অংশে বিভক্ত:
- Limit: প্রতিটি পেজে কতগুলো রেকর্ড দেখানো হবে, তা নির্ধারণ করা।
- Offset: নির্ধারণ করে কোন রেকর্ড থেকে পেজিং শুরু হবে।
- Page Number: কোন পেজে আছেন, তা ট্র্যাক করা।
MySQLi ব্যবহার করে Pagination Implement করা
MySQLi ব্যবহার করে পেজিনেশন করার জন্য আপনাকে প্রথমে LIMIT এবং OFFSET SQL কুয়েরি প্যারামিটারগুলো ব্যবহার করতে হবে। উদাহরণস্বরূপ:
<?php
$mysqli = new mysqli("localhost", "username", "password", "database_name");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$records_per_page = 10; // প্রতি পেজে ১০টি রেকর্ড
$page_number = isset($_GET['page']) ? $_GET['page'] : 1; // URL থেকে পেজ নম্বর নিন
$offset = ($page_number - 1) * $records_per_page; // কোন রেকর্ড থেকে শুরু হবে
$query = "SELECT * FROM users LIMIT $records_per_page OFFSET $offset"; // LIMIT এবং OFFSET ব্যবহার
$result = $mysqli->query($query);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "User: " . $row['name'] . "<br>";
}
} else {
echo "No records found.";
}
// Pagination Links
$total_records_query = "SELECT COUNT(*) FROM users"; // মোট রেকর্ডের সংখ্যা জানুন
$total_records_result = $mysqli->query($total_records_query);
$total_records = $total_records_result->fetch_row()[0];
$total_pages = ceil($total_records / $records_per_page); // মোট পেজের সংখ্যা
echo "<br>";
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
$mysqli->close();
?>
Pagination Implementation এর বিস্তারিত
- Limit:
LIMITSQL কুয়েরি ব্যবহার করা হয় যা প্রতি পেজে কতগুলো রেকর্ড দেখানো হবে তা নির্ধারণ করে। উপরে দেওয়া উদাহরণে, প্রতি পেজে ১০টি রেকর্ড দেখানো হচ্ছে। - Offset:
OFFSETকুয়েরি ব্যবহার করা হয় যা নির্ধারণ করে পেজিং শুরু হবে কোথা থেকে। এটি মূলত($page_number - 1) * $records_per_pageএর মাধ্যমে হিসাব করা হয়, যেখানে$page_numberহল বর্তমানে যে পেজে আছেন এবং$records_per_pageহল প্রতি পেজে দেখানোর রেকর্ড সংখ্যা। - Total Records and Total Pages: Pagination সঠিকভাবে কাজ করার জন্য, আপনাকে মোট রেকর্ডের সংখ্যা জানতে হবে। এটি
COUNT(*)কুয়েরি ব্যবহার করে পাওয়া যায়। তারপরে মোট পেজের সংখ্যা নির্ধারণ করা হয়ceil($total_records / $records_per_page)এর মাধ্যমে। - Pagination Links: পরবর্তী এবং পূর্ববর্তী পৃষ্ঠায় নেভিগেট করার জন্য পেজ নম্বরের লিঙ্কগুলো তৈরি করা হয়। প্রতিটি পেজে ক্লিক করলে ইউজার ঐ পেজে চলে যেতে পারেন।
সারাংশ
MySQLi ব্যবহার করে পেজিনেশন বাস্তবায়ন করার জন্য, LIMIT এবং OFFSET SQL কুয়েরি ব্যবহার করে নির্দিষ্ট সংখ্যক রেকর্ড প্রদর্শন করা হয়। এর মাধ্যমে ইউজার একটি নির্দিষ্ট পরিমাণ ডেটা দেখতে পান, যা তাদের সার্চ অথবা ব্রাউজিং অভিজ্ঞতা উন্নত করে। Pagination ইমপ্লিমেন্টেশনটি ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স বাড়ায় এবং ডেটাবেসের অতিরিক্ত লোড কমাতে সাহায্য করে।
Read more