当前位置:首页 > PHP

php分页功能的实现

2026-02-27 14:07:40PHP

基本分页实现

使用 LIMITOFFSET 进行数据库查询分页。假设每页显示 10 条记录:

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10;
$offset = ($page - 1) * $perPage;

$sql = "SELECT * FROM your_table LIMIT $offset, $perPage";
$result = $conn->query($sql);

计算总页数

需要先获取总记录数来计算总页数:

php分页功能的实现

$totalSql = "SELECT COUNT(*) as total FROM your_table";
$totalResult = $conn->query($totalSql);
$totalRow = $totalResult->fetch_assoc();
$totalPages = ceil($totalRow['total'] / $perPage);

分页链接生成

创建分页导航链接:

echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
    $active = $i == $page ? 'active' : '';
    echo "<a href='?page=$i' class='$active'>$i</a>";
}
echo '</div>';

使用预处理语句

为防止 SQL 注入,建议使用预处理语句:

php分页功能的实现

$stmt = $conn->prepare("SELECT * FROM your_table LIMIT ?, ?");
$stmt->bind_param("ii", $offset, $perPage);
$stmt->execute();
$result = $stmt->get_result();

分页类封装

可以封装一个分页类方便复用:

class Pagination {
    public $page;
    public $perPage;
    public $total;

    public function __construct($total, $perPage = 10) {
        $this->page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
        $this->perPage = $perPage;
        $this->total = $total;
    }

    public function getOffset() {
        return ($this->page - 1) * $this->perPage;
    }

    public function getTotalPages() {
        return ceil($this->total / $this->perPage);
    }

    public function getLinks() {
        $html = '<div class="pagination">';
        for ($i = 1; $i <= $this->getTotalPages(); $i++) {
            $active = $i == $this->page ? 'active' : '';
            $html .= "<a href='?page=$i' class='$active'>$i</a>";
        }
        $html .= '</div>';
        return $html;
    }
}

前端样式建议

基本的分页样式 CSS:

.pagination {
    display: flex;
    gap: 5px;
    margin-top: 20px;
}
.pagination a {
    padding: 5px 10px;
    border: 1px solid #ddd;
    text-decoration: none;
}
.pagination a.active {
    background: #007bff;
    color: white;
    border-color: #007bff;
}

标签: 分页功能
分享给朋友:

相关文章

js实现分页

js实现分页

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

jquery 分页

jquery 分页

实现 jQuery 分页的方法 客户端分页实现 使用 jQuery 实现客户端分页的核心思路是通过 JavaScript 控制数据的显示与隐藏。假设有一个包含数据的 HTML 列表或表格: // 分…

vue实现后台分页

vue实现后台分页

Vue 实现后台分页的方法 分页组件与数据绑定 在 Vue 中实现后台分页通常需要结合分页组件和后端 API。使用 el-pagination(Element UI)或自定义分页组件,通过 v-mod…

vue实现换页功能

vue实现换页功能

Vue 实现分页功能 使用第三方库(如 Element UI) 安装 Element UI: npm install element-ui 在 main.js 中引入: import Vue fr…

php分页功能的实现

php分页功能的实现

分页功能的基本原理 分页功能的核心是通过SQL的LIMIT子句实现数据分段查询。LIMIT接受两个参数:起始位置偏移量和每页记录数。例如查询第2页(每页10条)的SQL语句为: SELECT * F…

php秒杀功能的实现

php秒杀功能的实现

秒杀功能的核心设计 高并发场景下秒杀系统的核心在于解决超卖问题和性能瓶颈。需要结合缓存、队列、锁机制等技术实现。 数据库设计 商品表需包含库存字段,例如: CREATE TABLE `seckil…