当前位置:首页 > 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 样式来控制分页的外观:

php实现分页类

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

相关文章

vue实现分页条数

vue实现分页条数

实现分页条数的方法 在Vue中实现分页条数功能,通常需要结合分页组件和数据请求逻辑。以下是几种常见的实现方式: 使用Element UI的分页组件 Element UI提供了现成的分页组件,可以快…

分页实现vue

分页实现vue

分页实现方法(Vue) 使用Element UI分页组件 安装Element UI库后,可以直接使用其分页组件。在模板中添加el-pagination,通过v-model绑定当前页码,设置page-s…

php长连接实现

php长连接实现

PHP 长连接实现方法 长连接(Keep-Alive)允许客户端与服务器在一次TCP连接中发送和接收多个HTTP请求/响应,减少重复建立连接的开销。以下是PHP中实现长连接的几种方式: 配置HTTP…

php实现博客

php实现博客

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

php mvc 实现

php mvc 实现

PHP MVC 实现方法 MVC(Model-View-Controller)是一种设计模式,用于分离应用程序的逻辑、数据和界面。以下是实现PHP MVC框架的关键步骤。 目录结构 创建以下目录结构…

php实现注册登录

php实现注册登录

PHP 注册功能实现 创建数据库表(以 MySQL 为例) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…