当前位置:首页 > PHP

php实现分页类

2026-02-13 18:57:35PHP

PHP 分页类实现

分页是 Web 开发中常见的功能,用于将大量数据分割成多个页面显示。以下是一个简单的 PHP 分页类实现,包含基本功能如数据分页、页码生成和样式控制。

分页类代码

<?php
class Pagination {
    private $totalItems;       // 总记录数
    private $itemsPerPage;     // 每页显示记录数
    private $currentPage;      // 当前页码
    private $pageRange;        // 页码显示范围
    private $totalPages;       // 总页数
    private $url;              // 分页链接

    public function __construct($totalItems, $itemsPerPage = 10, $currentPage = 1, $pageRange = 5, $url = '') {
        $this->totalItems = $totalItems;
        $this->itemsPerPage = $itemsPerPage;
        $this->currentPage = $currentPage;
        $this->pageRange = $pageRange;
        $this->url = $url;
        $this->totalPages = ceil($totalItems / $itemsPerPage);
    }

    public function getPagination() {
        if ($this->totalPages <= 1) {
            return '';
        }

        $start = max(1, $this->currentPage - floor($this->pageRange / 2));
        $end = min($this->totalPages, $start + $this->pageRange - 1);

        $html = '<ul class="pagination">';

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

        // 页码
        for ($i = $start; $i <= $end; $i++) {
            $active = ($i == $this->currentPage) ? 'class="active"' : '';
            $html .= '<li ' . $active . '><a href="' . $this->url . $i . '">' . $i . '</a></li>';
        }

        // 下一页
        if ($this->currentPage < $this->totalPages) {
            $html .= '<li><a href="' . $this->url . ($this->currentPage + 1) . '">下一页</a></li>';
        }

        $html .= '</ul>';
        return $html;
    }
}
?>

使用方法

<?php
// 示例数据
$totalItems = 100;  // 总记录数
$itemsPerPage = 10; // 每页显示记录数
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$url = 'index.php?page=';

// 创建分页对象
$pagination = new Pagination($totalItems, $itemsPerPage, $currentPage, 5, $url);

// 显示分页
echo $pagination->getPagination();
?>

数据库查询示例

<?php
// 数据库分页查询
$db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$offset = ($currentPage - 1) * $itemsPerPage;
$stmt = $db->query("SELECT * FROM table LIMIT $offset, $itemsPerPage");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 显示数据
foreach ($rows as $row) {
    echo $row['id'] . ' ' . $row['name'] . '<br>';
}

// 显示分页
echo $pagination->getPagination();
?>

样式定制

可以自定义 CSS 样式来控制分页的外观:

.pagination {
    display: inline-block;
    padding: 0;
    margin: 20px 0;
}

.pagination li {
    display: inline;
    margin: 0 5px;
}

.pagination li a {
    color: #333;
    padding: 8px 16px;
    text-decoration: none;
    border: 1px solid #ddd;
}

.pagination li.active a {
    background-color: #4CAF50;
    color: white;
    border: 1px solid #4CAF50;
}

.pagination li a:hover:not(.active) {
    background-color: #ddd;
}

功能扩展

  1. 添加首页和末页:可以在分页中添加首页和末页链接,方便用户快速跳转。
  2. AJAX 分页:通过 JavaScript 实现无刷新分页,提升用户体验。
  3. 多语言支持:根据用户语言环境显示不同的分页文字。
  4. URL 美化:使用 URL 重写技术美化分页链接。

这个分页类提供了基本功能,可以根据实际需求进行扩展和定制。

php实现分页类

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

相关文章

php实现文件下载

php实现文件下载

PHP 实现文件下载的方法 使用 header() 函数强制下载 设置正确的 HTTP 头信息,强制浏览器下载文件而不是直接打开。 $file = 'path/to/file.pdf'; if (…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以…

git php实现

git php实现

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

php实现定时任务

php实现定时任务

PHP 实现定时任务的几种方法 在 PHP 中实现定时任务可以通过多种方式完成,具体选择取决于项目需求和服务器环境。以下是常见的实现方法: 使用 Cron 任务 Cron 是 Linux 系统中常…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…