当前位置:首页 > PHP

php实现分页类

2026-01-28 20:47:39PHP

PHP 分页类实现

以下是一个简单的 PHP 分页类实现示例,包含基本的分页逻辑和样式控制:

php实现分页类

<?php
class Pagination {
    private $totalItems;
    private $itemsPerPage;
    private $currentPage;
    private $totalPages;
    private $pageRange = 5;
    private $url;

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

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

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

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

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

        if ($end - $start < $this->pageRange - 1) {
            $start = max(1, $end - $this->pageRange + 1);
        }

        if ($start > 1) {
            $pagination .= '<li><a href="' . $this->url . '1">1</a></li>';
            if ($start > 2) {
                $pagination .= '<li class="disabled"><span>...</span></li>';
            }
        }

        for ($i = $start; $i <= $end; $i++) {
            if ($i == $this->currentPage) {
                $pagination .= '<li class="active"><span>' . $i . '</span></li>';
            } else {
                $pagination .= '<li><a href="' . $this->url . $i . '">' . $i . '</a></li>';
            }
        }

        if ($end < $this->totalPages) {
            if ($end < $this->totalPages - 1) {
                $pagination .= '<li class="disabled"><span>...</span></li>';
            }
            $pagination .= '<li><a href="' . $this->url . $this->totalPages . '">' . $this->totalPages . '</a></li>';
        }

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

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

使用示例

<?php
// 假设总记录数为100,每页显示10条,当前页码从URL获取
$totalItems = 100;
$itemsPerPage = 10;
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$url = 'index.php?page=';

$pagination = new Pagination($totalItems, $itemsPerPage, $currentPage, $url);
echo $pagination->getPagination();
?>

数据库查询配合分页

<?php
// 数据库查询示例
$limit = $itemsPerPage;
$offset = ($currentPage - 1) * $itemsPerPage;

// 假设使用PDO
$stmt = $pdo->prepare("SELECT * FROM your_table LIMIT :limit OFFSET :offset");
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 显示数据
foreach ($results as $row) {
    // 显示数据内容
}

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

分页样式建议

可以添加以下CSS样式来美化分页:

php实现分页类

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

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

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

.pagination li.active span {
    background-color: #337ab7;
    color: white;
    border: 1px solid #337ab7;
}

.pagination li a:hover {
    background-color: #eee;
}

高级功能扩展

如果需要更复杂的功能,可以考虑以下扩展:

  1. 添加AJAX支持,实现无刷新分页
  2. 支持自定义URL参数格式
  3. 添加每页显示数量选择器
  4. 支持多语言
  5. 添加跳转到指定页码功能

这个分页类提供了基本的分页功能,可以根据项目需求进行修改和扩展。

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

相关文章

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php实现聊天

php实现聊天

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

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUTO…

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先进…

php实现定时

php实现定时

PHP 实现定时任务的方法 PHP 本身是脚本语言,通常需要借助外部工具或框架实现定时任务。以下是几种常见方法: 使用 Cron 任务 Linux 系统自带的 Cron 是常用的定时任务工具。通过编…

php登陆功能实现

php登陆功能实现

实现PHP登录功能 数据库准备 创建一个用户表存储登录信息,基本字段包括用户名、密码(需加密)等: CREATE TABLE users ( id INT AUTO_INCREMENT PR…