当前位置:首页 > PHP

php实现分页导航

2026-02-15 23:39:27PHP

实现分页导航的基本思路

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

获取当前页码和总记录数

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

php实现分页导航

$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。

php实现分页导航

echo generatePagination($currentPage, $totalPages);

结合数据库查询

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

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

添加CSS样式

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

.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
分享给朋友:

相关文章

vue实现选项卡分页

vue实现选项卡分页

Vue实现选项卡分页的方法 使用动态组件切换 通过Vue的<component :is="currentTab">动态加载不同组件,结合v-for循环渲染选项卡标题,点击时切换curr…

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 //…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Rat…