php分页需四步协同:1.安全获取并校验页码;2.查总数、算偏移、取当前页数据;3.算总页数并生成带参数的html链接;4.优化url伪静态及添加rel="prev/next"提升seo。

PHP 实现分页功能,关键不是“加标签”,而是用 PHP 控制逻辑、配合 HTML 输出分页链接。所谓“PHP 标签”,指的是 <?php ?> 代码块,它用来嵌入服务器端逻辑,不能单独靠写几个标签就实现分页——必须有数据查询、页码计算、URL 参数处理和前端渲染四部分协同工作。
1. 获取当前页码并做安全校验
用户通过 URL 的 page 参数指定页码(如 ?page=3),PHP 需读取并过滤:
- 用
$_GET['page'] ?? 1获取,默认为第 1 页 - 强制转为整数:
$page = (int)$_GET['page']; - 防止负数或 0:
$page = max(1, $page);
2. 查询总记录数和当前页数据
分页依赖两个核心数据:总条数(算总页数)、当前页要显示的记录(用 LIMIT 起始偏移和数量):
- 先查总数:
$total = $pdo->query("SELECT COUNT(*) FROM articles")->fetchColumn(); - 设定每页条数:
$per_page = 10; - 算起始位置:
$offset = ($page - 1) * $per_page; - 查当前页数据:
$stmt = $pdo->prepare("SELECT * FROM articles ORDER BY id DESC LIMIT ?, ?");<br>$stmt->execute([$offset, $per_page]);<br>$articles = $stmt->fetchAll();
3. 计算总页数并生成分页 HTML 链接
根据总数和每页条数得出总页数,再用循环输出带 page 参数的链接:
$total_pages = ceil($total / $per_page);- 遍历生成页码链接(注意保留其他 GET 参数,如搜索关键词):
php for ($i = 1; $i
= $i ?>
- 可加“上一页/下一页”及省略号逻辑提升体验(非必需但推荐)
4. 前端展示时注意 URL 干净与 SEO 友好
避免裸露 ?page=2 这类参数,可结合伪静态(如 Nginx 重写 /page/2 → index.php?page=2),但 PHP 后端接收方式不变;同时确保 <link rel="prev"> 和 <link rel="next"> 标签动态输出,利于搜索引擎识别分页关系。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











