PHP代码
<?php
/*分页查询原理
* 分页的原理:
* 1.LIMIT参数的作用:偏移量与显示数量
* 2.如果控制每页显示的数量
* 3.接收GET参数,用p表示当前页数,每页显示3条
* 4.需要的参数:
* (1).totalPage 总页数
* (2).totalNumber 一共有多少条数据
* (3).pageSize 每页显示多少条数据
* (4)currentPage 当前第几页
* (5)*.rangeStart 起始页
* (6)*.rangeEnd 末页
* 5.当前偏移量的计算公式:(页数-1)*每页显示的数量
* offset = (page-1)*num
*/
//1.用PDO预处理来获取表中的全部数据
header('Content-Type:text/html; charset=UTF-8');
$page = isset($_GET['p'])? $_GET['p']:1;
$page = ($page == 0 ) ? 1 : $page;
//$unm表示每页显示的记录数
$num = 3;
$offset = ($page-1)*$num;
$pdo = new PDO('mysql:dbname=demo','root', 'root');
//LIMIT :offset,num limit限制的意思 第一个参数:offset是偏移量,第二个参数是一个常量,显示多少条数据 为是PDO预处理的写法
$sql = "SELECT `id`,`name`,`email` FROM `user1` LIMIT :offset, :num";
$pdoStmt = $pdo->prepare($sql);
//绑定第一个占位符offset
$pdoStmt->bindParam('offset', $offset, PDO::PARAM_INT);
//绑定第二个占位符num
$pdoStmt->bindParam('num', $num, PDO::PARAM_INT);
//注:$pdoStmt调用execute()方法,这个方法里面不传参数
$res = $pdoStmt->execute();
echo '<h3 align="center">用户信息表</h3>';
echo '<table border="1" cellspacing="0" cellpadding="5" width="70%" align="center">';
echo '<tr bgcolor="#90ee90"><th>ID</th><th>用户名</th><th>邮箱</th></tr>';
foreach ($pdoStmt as $row) {
echo '<tr align="center">';
echo '<td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['email'].'</td>';
echo '</tr>';
}
echo '</table>';
//计算共计多少页
$pdoStmt2 = $pdo->prepare("SELECT * FROM user1");
$pdoStmt2->execute();
//$totalPage总页数 ceil向上取整 $pdoStmt2->rowCount()总页数 $num每页数
$totalPage = ceil($pdoStmt2->rowCount() / $num);
//编写下一页到总页数,你再点下一页会越界,必须设置
//($totalPage-1)这里减1是:如果是最大页你点了下一页多了一页必须减回来,否则设置当前页
$page = ($page == $totalPage) ? ($totalPage-1) : $page;
//创建分页条
echo '<h3 align="center">';
echo '<a href="http://www.php.io/30/page.php?p=1">首页</a>';
echo '<a href="http://www.php.io/30/page.php?p=';
echo (($page-1)==0)?1:($page-1);
echo '">上一页</a>';
for ($i=1; $i<=$totalPage; $i++) {
echo '<a href="http://www.php.io/30/page.php?p='.$i.'">'.$i.'</a>';
}
echo '<a href="http://www.php.io/30/page.php?p='.($page+1).'">下一页</a>';
echo '<a href="http://www.php.io/30/page.php?p='.$totalPage.'">尾页</a>';
echo '</h3>';效果图

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号