以下是使用PDO预处理做的数据表的分页查询:
需要注意的是
LIMIT 参数的作用:
第一个参数显示起始位置也就是偏移量
第二个参数是显示记录数量
bindParam();第一个参数必须是命名占位符,第二个参数必须是变量:
<?php
//分页查询的原理:
require 'header.php';//导入头部
/*分析分页的原理
*1,LIMIT参数的作用:偏移量与显示数量
*2,如何控制每页显示的数量:
*3,接受get参数;用户P表示当前页数;每页显示3条
*4,需要的参数:
*1.totalPage:总页数;
*2.totalNumber:总共有多少条数据:
*3.pageSize:每页显示多少天数据:
*4.currentPage:当前是第几页:
*5,rangeStart:起始页;
*6,rangeEnd:末页*5偏移量的计算公式offset=(page-1)*num;
*/
//生成pdo对象连接数据库
require 'pdo_connect.php';echo '<div class="container">';
echo '<div class="row">';
$page=isset($_GET['p'])?$_GET['p']:1;
$page=($page==0)?1:$page;
$num=3;
$offset=($page-1)*$num;
try{
$pdoStmt=$pdo->prepare("SELECT * FROM user1 LIMIT :offset,:num");//生成pdo预处理对象 $pdoStmt->bindParam('offset',$offset,PDO::PARAM_INT);//参数绑定
$pdoStmt->bindParam('num',$num,PDO::PARAM_INT);
$res=$pdoStmt->execute();//执行成功返回true 失败返回false
if(true==$res){
echo '<h4 align="center" style="line-height:70px;">用户信息分页列表</h4>';
echo '<table border="1" cellpadding="0" cellspacing="0" style="text-align:center;margin:0 auto;width:800px;">';
echo '<tr bgcolor="skyblue" style="line-height:45px;">
<td>ID</td>
<td>Name</td>
<td>passWord</td>
<td>Email</td>
<td>操作</td>
</tr>';
foreach($pdoStmt as $rows){
echo '<tr>';
echo '<td>'.$rows['id'].'</td>';
echo '<td>'.$rows['name'].'</td>';
echo '<td>'.$rows['password'].'</td>';
echo '<td>'.$rows['email'].'</td>';
echo '<td>
<a class="btn btn-primary">修改</a>
<a class="btn btn-danger">删除</a>
</td>';
echo '</tr>';
}
echo '</table>';
}else{
echo '<h2 style="color:red">查询失败'.$pdo->errorInfo().'</h2>';
}
}catch(PDOException $e){
$e->getMessage();
}
echo '</div>';
echo '</div>';
echo '<div class="row text-center">';//下面我们来做分页,引用的是bootstrap 中的分页模板
//生成新的pdo对象查询数据表总共有多少条数据;
$pdoStmt2=$pdo->prepare("SELECT * FROM user1");
$pdoStmt2->execute();
$totalNum=$pdoStmt2->rowCount();
$totalPage=ceil($totalNum/$num);
$page = ($page==$totalPage)?($totalPage-1):$page;
echo '<nav aria-label="Page navigation">';
echo ' <ul class="pagination ">';
echo '<li>';
echo '<a href="pdo_page.php?p='.((($page-1)==0)? 1:($page-1)).' " aria-label="Previous">';
echo '<span aria-hidden="true">«</span>';
echo'</a>';
echo'</li>';
echo'<li><a href="pdo_page.php?p=1">首页</a></li>';
for($i=1;$i<=$totalPage;$i++){
echo '<li><a href="pdo_page.php?p='.$i.'">'.$i.'</a></li>';
}
echo'<li><a href="pdo_page.php?p='.$totalPage.'">尾页</a></li>';
echo'<li>
<a href="pdo_page.php?p='.($page+1).'" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>';
echo ' </ul>';echo '</nav>';
echo '<div>';
echo '</div>';
?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号