آموزش 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
نظرات کاربران
از دیدگاه مرتبط با موضوع استفاده نمایید.
از تبلیغ سایت یا شبکه اجتماعی خودداری فرمایید.
برای پاسخ گویی بهتر در سایت ثبت نام نمایید و سپس سوال خود را مطرح فرمایید.
اگر به دنبال کار پاره وقت هستید با ما تماس بگیرید.
اگر سوال یا نظری دارید در بخش کامنت ها بنویسید.اگر موضوع خاصی مد نظر شماست که در سایت موجود نیست در بخش کامنت ها بنویسید