ডাইনামিক পেজিনেশন হল একটি পদ্ধতি যার মাধ্যমে বড় ডেটা সেটকে ছোট ছোট অংশে ভাগ করা হয় এবং প্রতিটি অংশ বা পেজে নির্দিষ্ট সংখ্যক রেকর্ড প্রদর্শিত হয়। MySQLi ব্যবহার করে ডাইনামিক পেজিনেশন তৈরি করা অনেক সহজ এবং এটি ইউজার এক্সপিরিয়েন্স উন্নত করতে সাহায্য করে। এখানে আমি MySQLi দিয়ে ডাইনামিক পেজিনেশন তৈরি করার প্রক্রিয়া বর্ণনা করব।
পেজিনেশন তৈরির প্রক্রিয়া
ডাইনামিক পেজিনেশন তৈরির জন্য প্রথমে আপনাকে কিছু মৌলিক উপাদান তৈরি করতে হবে, যেমন:
- ডেটাবেস থেকে ডেটা ফেচ করা।
- টোটাল পেজেস হিসাব করা।
- পেজিং লিঙ্ক তৈরি করা।
- পেজিনেশন প্রক্রিয়া কার্যকরী করা।
এখন প্রতিটি ধাপ বিশদভাবে আলোচনা করা হবে।
১. ডেটাবেস থেকে ডেটা ফেচ করা
প্রথমে আপনি যে টেবিল থেকে ডেটা ফেচ করতে চান, সে টেবিলের সমস্ত রেকর্ড বের করতে হবে। এক্ষেত্রে, LIMIT এবং OFFSET ব্যবহার করা হয়, যা আপনাকে নির্দিষ্ট রেকর্ড পরিমাণে ডেটা আনার সুযোগ দেয়।
<?php
// ডেটাবেস কনেকশন স্থাপন
$connection = mysqli_connect('localhost', 'root', '', 'your_database');
// পেজ নাম্বার এবং রেকর্ড পার পেজ নির্ধারণ
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$records_per_page = 10; // প্রতিটি পেজে 10 রেকর্ড
$offset = ($page - 1) * $records_per_page; // শুরুর রেকর্ডের অবস্থান
// ডেটা ফেচ করা
$query = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
$result = mysqli_query($connection, $query);
?>
এখানে $_GET['page'] দ্বারা আপনি URL প্যারামিটার থেকে পেজ নম্বর গ্রহণ করছেন, এবং LIMIT ও OFFSET দ্বারা আপনি ডেটাবেস থেকে নির্দিষ্ট পরিমাণ ডেটা এনে থাকছেন।
২. টোটাল পেজেস হিসাব করা
ডাইনামিক পেজিনেশনের জন্য মোট পেজ সংখ্যা হিসাব করতে হবে। এটি করতে হলে, প্রথমে টেবিলের মোট রেকর্ড সংখ্যা বের করতে হবে এবং তারপর রেকর্ড পার পেজ দ্বারা ভাগ করে মোট পেজের সংখ্যা নির্ধারণ করতে হবে।
<?php
// মোট রেকর্ড সংখ্যা বের করা
$query_total = "SELECT COUNT(*) FROM your_table";
$result_total = mysqli_query($connection, $query_total);
$row = mysqli_fetch_row($result_total);
$total_records = $row[0];
// মোট পেজ সংখ্যা হিসাব করা
$total_pages = ceil($total_records / $records_per_page);
?>
এখানে, COUNT(*) ব্যবহার করে মোট রেকর্ড সংখ্যা বের করা হচ্ছে এবং ceil() ফাংশন ব্যবহার করে মোট পেজের সংখ্যা হিসাব করা হচ্ছে।
৩. পেজিং লিঙ্ক তৈরি করা
একবার মোট পেজ সংখ্যা নির্ধারণ হলে, পরবর্তী পদক্ষেপ হলো পেজিং লিঙ্ক তৈরি করা, যাতে ইউজার বিভিন্ন পেজে নেভিগেট করতে পারে।
<?php
// পেজিং লিঙ্ক তৈরি করা
echo '<div class="pagination">';
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $page) {
echo '<span class="current-page">' . $i . '</span>';
} else {
echo '<a href="?page=' . $i . '">' . $i . '</a>';
}
}
echo '</div>';
?>
এখানে, প্রতিটি পেজ নম্বর একটি লিঙ্কের মধ্যে রয়েছে, এবং বর্তমানে যে পেজটি চালু আছে, সেটি আলাদা করে প্রদর্শিত হচ্ছে।
৪. পেজিনেশন প্রক্রিয়া কার্যকরী করা
ডেটাবেস থেকে ডেটা ফেচ করার পর এবং পেজিং লিঙ্ক তৈরি করার পর, এখন সবকিছু একত্রিত করতে হবে।
<?php
// ডেটাবেস কনেকশন
$connection = mysqli_connect('localhost', 'root', '', 'your_database');
// পেজ নম্বর এবং রেকর্ড পার পেজ সেট করা
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$records_per_page = 10;
$offset = ($page - 1) * $records_per_page;
// ডেটা ফেচ করা
$query = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
$result = mysqli_query($connection, $query);
// রেকর্ড দেখানো
while ($row = mysqli_fetch_assoc($result)) {
echo "<div>" . $row['column_name'] . "</div>";
}
// মোট রেকর্ড সংখ্যা এবং পেজ সংখ্যা বের করা
$query_total = "SELECT COUNT(*) FROM your_table";
$result_total = mysqli_query($connection, $query_total);
$row = mysqli_fetch_row($result_total);
$total_records = $row[0];
$total_pages = ceil($total_records / $records_per_page);
// পেজিং লিঙ্ক তৈরি করা
echo '<div class="pagination">';
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $page) {
echo '<span class="current-page">' . $i . '</span>';
} else {
echo '<a href="?page=' . $i . '">' . $i . '</a>';
}
}
echo '</div>';
?>
এখন আপনার ডাইনামিক পেজিনেশন সম্পূর্ণ প্রস্তুত। প্রতিটি পেজে ১০টি রেকর্ড প্রদর্শিত হবে এবং ইউজার পেজ নম্বর অনুসারে নেভিগেট করতে পারবেন।
এইভাবে, MySQLi ব্যবহার করে আপনি সহজেই ডাইনামিক পেজিনেশন তৈরি করতে পারেন। এর মাধ্যমে বড় ডেটা সেটগুলোকে ছোট ছোট পেজে ভাগ করা সম্ভব, যা ইউজারদের জন্য আরও দ্রুত ও সহজে তথ্য অ্যাক্সেস করা সম্ভব করে।