当前位置:首页 > 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
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

实现基础搜索功能 使用PHP和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php实现接口

php实现接口

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

php实现推送

php实现推送

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

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php 伪静态实现

php 伪静态实现

PHP 伪静态实现方法 伪静态(URL Rewrite)是一种通过服务器配置将动态URL转换为静态URL的技术,提升URL的可读性和SEO效果。以下是几种常见的实现方式: 使用Apache的mod_…