当前位置:首页 > PHP

php 实现分页

2026-02-28 16:36:06PHP

实现 PHP 分页的基本方法

在 PHP 中实现分页功能通常需要结合数据库查询和前端展示逻辑。以下是常见的实现步骤:

数据库查询部分

通过 SQL 的 LIMIT 子句实现数据分片:

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10;
$start = ($page - 1) * $perPage;

$sql = "SELECT * FROM table_name LIMIT {$start}, {$perPage}";
$result = $conn->query($sql);

计算总页数

获取总记录数并计算总页数:

$total = $conn->query("SELECT COUNT(*) FROM table_name")->fetch_row()[0];
$pages = ceil($total / $perPage);

生成分页链接

创建分页导航 HTML:

for ($i = 1; $i <= $pages; $i++) {
    echo "<a href='?page={$i}'>{$i}</a> ";
}

优化分页实现

添加页码限制

避免显示过多页码,限制可见页码数量:

$visiblePages = 5;
$startPage = max(1, $page - floor($visiblePages/2));
$endPage = min($pages, $startPage + $visiblePages - 1);

添加上一页/下一页

增强导航体验:

if ($page > 1) {
    echo "<a href='?page=".($page-1)."'>上一页</a> ";
}

if ($page < $pages) {
    echo "<a href='?page=".($page+1)."'>下一页</a>";
}

使用预处理语句防止 SQL 注入

更安全的数据库查询方式:

$stmt = $conn->prepare("SELECT * FROM table_name LIMIT ?, ?");
$stmt->bind_param("ii", $start, $perPage);
$stmt->execute();
$result = $stmt->get_result();

封装为可重用函数

创建分页类或函数便于多处使用:

function paginate($conn, $table, $page, $perPage) {
    $start = ($page - 1) * $perPage;
    $query = "SELECT * FROM $table LIMIT $start, $perPage";
    $result = $conn->query($query);

    $total = $conn->query("SELECT COUNT(*) FROM $table")->fetch_row()[0];
    $pages = ceil($total / $perPage);

    return [
        'data' => $result->fetch_all(MYSQLI_ASSOC),
        'pages' => $pages,
        'current' => $page
    ];
}

前端展示优化

使用 Bootstrap 等框架美化分页导航:

php  实现分页

echo '<nav aria-label="Page navigation">
        <ul class="pagination">';
for ($i = 1; $i <= $pages; $i++) {
    $active = $i == $page ? ' active' : '';
    echo '<li class="page-item'.$active.'">
            <a class="page-link" href="?page='.$i.'">'.$i.'</a>
          </li>';
}
echo '</ul></nav>';

这些方法涵盖了从基础到进阶的 PHP 分页实现,可以根据项目需求选择适合的方案。

标签: 分页php
分享给朋友:

相关文章

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php实现接口

php实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。 定义接口 接口使用 inter…

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…

php 实现聊天功能

php 实现聊天功能

PHP 实现聊天功能的方法 使用 WebSocket 和 Ratchet 库 WebSocket 是实现实时聊天的理想选择。Ratchet 是一个 PHP 库,用于处理 WebSocket 连接。…