آموزش pagination در php
در این بخش از آموزش php از تاپ سایت 98 قصد داریم به سراغ صفحه بندی یا pagination در php برویم. کد pagination بصورت کامل و تست شده در اختیار شما عزیزان می باشد. می توانید آن را تغییر داده و در پروژه های خود استفاده نمایید.
نحوه ایجاد Pagination با PHP و MySql
در این آموزش قصد داریم با PHP و MySql صفحه بندی ایجاد کنیم.
ما یک دیتابیس بنام testphp1 داریم و یک جدول بنام topsite98 .
من در جدول topsite98 سه فیلد دارم id که auto increment است و خودکار وارد می شود ، فیلد fname که برای نام و از نوع varchar است و فیلد numb که نمره و از نوع int است.
سعی کنید در جدول حداقل 7 رکورد باشد تا صفحه بندی را بهتر متوجه شوید.
من در هر صفحه قصد دارم 3 رکورد را نمایش دهم چون در حال تست هستیم.
چهار دکمه نیز قرار داده ام صفحه قبلی ، صفحه بعدی ، صفحه اول و صفحه آخر.
اگر هنوز روی هیچ دکمه ای کلیک نکرده اید صفحه اول نمایش داده می شود چیزی که در تمام سایت ها اتفاق می افتد.
در متغیر no_of_records_per_page تعداد رکوردها را مشخص می کنید که باید در هر صفحه نمایش داده شود که من 3 رکورد در هر صفحه را قرار داده ام.
هنگام نمایش از دستور limit استفاده می شود و از متغیر offset که با هر شماره صفحه تغییر می کند و متغیر no_of_records_per_page که ثابت است و عدد 3 را نمایش می دهد.
مثلا در صفحه 3 ، چه رکوردهایی نمایش داده می شود.
متغیر offset مقدار 6 را می گیرد.
پس رکوردهای 7 و 8 و 9 نمایش داده می شود.
خطای احتمالی
این کد تست شده است. حتما نام دیتابیس و جدول و نام فیلدها را درست وارد نمایید تا با خطای احتمالی مواجه نشوید.
کد pagination
کد pagination در php زیر را در یک فایل php کپی کرده ، نام دیتابیس ، جدول و فیلدها را تغییر داده و در پروژه های خود استفاده نمایید.
<head>
<title>Pagination</title>
<!-- Bootstrap CDN -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<?php
if (isset($_GET['pageno'])) {
$pageno = $_GET['pageno'];
} else {
$pageno = 1;
}
$no_of_records_per_page = 3;
$offset = ($pageno-1) * $no_of_records_per_page;
$conn=mysqli_connect("localhost","root","","testphp1");
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
$total_pages_sql = "SELECT COUNT(*) FROM topsite98";
$result = mysqli_query($conn,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];
$total_pages = ceil($total_rows / $no_of_records_per_page);
$sql = "SELECT * FROM topsite98 LIMIT $offset, $no_of_records_per_page";
$res_data = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($res_data)){
echo "id: " . $row["id"]. " - Name: " . $row["fname"]. " " . $row["numb"]. "<br>";
}
mysqli_close($conn);
?>
<ul class="pagination">
<li><a href="?pageno=1">First</a></li>
<li class="<?php if($pageno <= 1){ echo 'disabled'; } ?>">
<a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
</li>
<li class="<?php if($pageno >= $total_pages){ echo 'disabled'; } ?>">
<a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
</li>
<li><a href="?pageno=<?php echo $total_pages; ?>">Last</a></li>
</ul>
</body>
</html>
کد بالا تست شده می باشد و صفحه بندی با موفقیت انجام شده است.
امیدواریم این آموزش برای شما مفید باشد.
موفق باشید.
منبع: myprogrammingtutorials
تگ: دیتابیس php
نظرات کاربران
از دیدگاه مرتبط با موضوع استفاده نمایید.
از تبلیغ سایت یا شبکه اجتماعی خودداری فرمایید.
برای پاسخ گویی بهتر در سایت ثبت نام نمایید و سپس سوال خود را مطرح فرمایید.
این سایت بفروش می رسد با سئو عالی و بازدید بالا. تماس بگیرید
اگر سوال یا نظری دارید در بخش کامنت ها بنویسید.اگر موضوع خاصی مد نظر شماست که در سایت موجود نیست در بخش کامنت ها بنویسید