php - 如何在 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 做什么
解决方案
$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>';
推荐阅读
- amazon-web-services - 如何在弹性 beantalk config.yml 中注入环境变量
- c++ - 使用部分 NSDMI 聚合 constexpr 默认构造函数错误
- node.js - 如何从 autodesk-forge 下载转换后的 svf 或其他(ifc)文件
- php - 我如何回显这种数组
- sql - 使用 PL/SCOPE 在 identifiers_all 上缺少 CALL
- python - 在 ipywidget 小部件元素中设置自定义样式
- date - freemarker 中的日期和时间验证检查
- sql - PLPGSQL - 存储过程来获取一组带有计数的行
- c - C 运行时错误“分段错误” - 如何删除它?
- flutter - 自动换行不适用于长文本