当前位置:首页 > PHP

php实现分页导航

2026-02-15 23:39:27PHP

实现分页导航的基本思路

分页导航的核心是根据当前页码和总页数生成分页链接,通常包括首页、上一页、页码列表、下一页和末页。PHP中可以通过计算当前页、总页数和生成HTML链接来实现。

获取当前页码和总记录数

从请求参数中获取当前页码,默认设为1。同时需要从数据库查询总记录数,用于计算总页数。

$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10; // 每页显示的记录数
$totalCount = 100; // 从数据库获取的总记录数
$totalPages = ceil($totalCount / $perPage);

生成分页链接HTML

创建一个函数来生成分页导航的HTML,包含首页、上一页、页码列表、下一页和末页。

function generatePagination($currentPage, $totalPages, $url = '?page=') {
    $html = '<div class="pagination">';

    // 首页
    if ($currentPage > 1) {
        $html .= '<a href="' . $url . '1">首页</a>';
    } else {
        $html .= '<span class="disabled">首页</span>';
    }

    // 上一页
    if ($currentPage > 1) {
        $html .= '<a href="' . $url . ($currentPage - 1) . '">上一页</a>';
    } else {
        $html .= '<span class="disabled">上一页</span>';
    }

    // 页码列表
    $start = max(1, $currentPage - 2);
    $end = min($totalPages, $currentPage + 2);
    for ($i = $start; $i <= $end; $i++) {
        if ($i == $currentPage) {
            $html .= '<span class="current">' . $i . '</span>';
        } else {
            $html .= '<a href="' . $url . $i . '">' . $i . '</a>';
        }
    }

    // 下一页
    if ($currentPage < $totalPages) {
        $html .= '<a href="' . $url . ($currentPage + 1) . '">下一页</a>';
    } else {
        $html .= '<span class="disabled">下一页</span>';
    }

    // 末页
    if ($currentPage < $totalPages) {
        $html .= '<a href="' . $url . $totalPages . '">末页</a>';
    } else {
        $html .= '<span class="disabled">末页</span>';
    }

    $html .= '</div>';
    return $html;
}

调用分页函数并显示

在页面中调用分页函数并显示生成的HTML。

echo generatePagination($currentPage, $totalPages);

结合数据库查询

通常分页需要与数据库查询结合,使用LIMIT和OFFSET来实现数据分页。

$offset = ($currentPage - 1) * $perPage;
$sql = "SELECT * FROM table_name LIMIT $offset, $perPage";
// 执行查询并获取结果

添加CSS样式

为分页导航添加基本的CSS样式,使其更美观。

php实现分页导航

.pagination {
    margin: 20px 0;
    text-align: center;
}
.pagination a, .pagination span {
    display: inline-block;
    padding: 5px 10px;
    margin: 0 2px;
    border: 1px solid #ddd;
    text-decoration: none;
    color: #333;
}
.pagination a:hover {
    background: #eee;
}
.pagination .current {
    background: #007bff;
    color: #fff;
    border-color: #007bff;
}
.pagination .disabled {
    color: #aaa;
    cursor: not-allowed;
}

注意事项

  • 确保当前页码不超过总页数范围。
  • 对用户输入的页码进行验证,防止SQL注入或其他安全问题。
  • 可以根据需求调整显示的页码数量,例如显示更多或更少的页码链接。

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

相关文章

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php无限分类的实现

php无限分类的实现

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

php 队列的实现

php 队列的实现

PHP 队列的实现方法 使用数据库实现队列 创建一个数据表存储队列任务,包含任务ID、状态、创建时间等字段。通过SQL语句实现任务的入队和出队操作。 // 入队操作 INSERT INTO queu…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…