以下是使用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>'; ?>