首页 > 解决方案 > 如何在 PHP、mysql 中进行分页

问题描述

我想知道如何在 PHP 中进行分页 请问您能帮个忙吗?

此代码没有错误。但我不知道 $current_page 做什么

<?php

$con = mysqli_connect("localhost", "root", "", "dbdb") or die("error");


$page_size = 10;

$page_list_size = 10;

if (isset($_POST['search'])) {
    $valueTosearch = $_POST['valueTosearch'];

    $query = "SELECT * FROM `shipment` WHERE CONCAT(`Ship_Date`,`Model_No`,`Serial_No`)LIKE'%" . $valueTosearch . "%' ORDER BY Ship_Date DESC LIMIT $page_size";
    $search_result = filterTable($query);
} else {
    $query = "SELECT * FROM `shipment` ORDER BY Ship_Date DESC LIMIT $page_size";
    $search_result = filterTable($query);
}

function filterTable($query) {
    $con = mysqli_connect("localhost", "root", "", "dbdb");
    $filter_Result = mysqli_query($con, $query);
    return $filter_Result;
}

echo "<center><h1>info</h1></center> <br><br>";

$ret = mysqli_query($con, $query);
if ($ret) {
    echo mysqli_num_rows($ret), " <br><br>";
    $count = mysqli_num_rows($ret);
} else {
    echo "error :" . mysqli_error($con);
    exit();
}


$query = "SELECT count(*) FROM shipment";
$result_count = mysqli_query($con, $query);
$result_row = mysqli_fetch_array($result_count);
$total_row = $result_row[0];


if ($total_row <= 0)
    $total_row = 0;
$total_page = ceil($total_row / $page_size);



$current_page = ceil();
?>

我想知道如何在 PHP 中进行分页 请问您能帮个忙吗?

此代码没有错误。但我不知道 $current_page 做什么

标签: php

解决方案


$current_page 应该是用户想要查看的页面编号,这将是用户的输入。这是我的实现。希望这会帮助你 。

$pagenum = $_GET['pagenum'];//get the page number user want to view
$con = mysqli_connect("localhost", "root", "9272", "new_platform_7");
$query = 'select * from table1';
$filter_Result = mysqli_query($con, $query);//execute query without limit to get total number of rows
$rows = mysqli_num_rows($filter_Result);//total number of rows
if (!(isset($pagenum)))  
{  
$pagenum = 1;//if user hasn't give page number set page to page number 1
}
$page_rows = 30;//the page size (number of rows in each page)
$last = ceil($rows/$page_rows);//total number of pages //use ceil to avoid fractions
if ($pagenum < 1){  //if user give negative page number. set page number to 1
$pagenum = 1;  //this will happen if user clicked the Previous page link when current page is 1
}elseif ($pagenum > $last)  //if page number is greater than calculated number of pages . set page number to last page
{  
$pagenum = $last;  //this will happen if user clicked the next page link when current page is the last page
}
//($pagenum - 1) * $page_rows calculates where to start the lmit
$query.= ' limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;//limit result 
echo $query;
$filter_Result = mysqli_query($con, $query);//execute query with limits
//pagination links
echo '<a href="?pagenum=1&">First Page</a>';
echo '<a href="?pagenum='.($pagenum-1).'&">Previous Page</a>';
echo '<a href="?pagenum='.($pagenum+1).'&">Next Page</a>';
echo '<a href="?pagenum='.$last.'&">Last Page</a>';

推荐阅读