当前位置:首页 > PHP

php 分页怎么实现

2026-04-03 06:54:18PHP

PHP 分页实现方法

数据库查询与分页逻辑

分页的核心是通过 SQL 的 LIMIT 子句实现数据分段查询。假设每页显示 10 条数据,当前页码为 $page

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

$sql = "SELECT * FROM articles LIMIT $offset, $itemsPerPage";
$result = $pdo->query($sql);

计算总页数

需要先查询总记录数以确定分页数量:

php 分页怎么实现

$totalItems = $pdo->query("SELECT COUNT(*) FROM articles")->fetchColumn();
$totalPages = ceil($totalItems / $itemsPerPage);

生成分页导航

输出分页链接时需处理边界情况(如第一页/最后一页):

echo '<div class="pagination">';
if ($page > 1) {
    echo '<a href="?page='.($page - 1).'">上一页</a>';
}
for ($i = 1; $i <= $totalPages; $i++) {
    echo '<a href="?page='.$i.'"'.($i == $page ? ' class="active"' : '').'>'.$i.'</a>';
}
if ($page < $totalPages) {
    echo '<a href="?page='.($page + 1).'">下一页</a>';
}
echo '</div>';

使用预处理语句(安全增强)

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

php 分页怎么实现

$stmt = $pdo->prepare("SELECT * FROM articles LIMIT :offset, :limit");
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->bindValue(':limit', $itemsPerPage, PDO::PARAM_INT);
$stmt->execute();

分页样式优化

通过 CSS 美化分页导航,例如:

.pagination a {
    padding: 8px 16px;
    border: 1px solid #ddd;
    margin: 0 4px;
}
.pagination a.active {
    background-color: #4CAF50;
    color: white;
}

扩展方案:封装分页类

对于复杂项目,可封装可复用的分页类:

class Paginator {
    private $totalItems;
    private $itemsPerPage;

    public function __construct($totalItems, $itemsPerPage) {
        $this->totalItems = $totalItems;
        $this->itemsPerPage = $itemsPerPage;
    }

    public function getTotalPages() {
        return ceil($this->totalItems / $this->itemsPerPage);
    }

    public function getOffset($currentPage) {
        return ($currentPage - 1) * $this->itemsPerPage;
    }
}

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

相关文章

vue 分页的实现

vue 分页的实现

Vue 分页的实现方法 使用 Element UI 的分页组件 安装 Element UI: npm install element-ui 在 Vue 项目中引入 Element UI 的分页组件:…

php实现文件的下载

php实现文件的下载

PHP 实现文件下载的方法 在 PHP 中实现文件下载功能通常需要设置正确的 HTTP 头信息,并输出文件内容。以下是几种常见的实现方式: 使用 header() 函数强制下载 通过设置 Conte…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

vue elementui实现分页

vue elementui实现分页

Vue + ElementUI 分页实现方法 安装与引入 确保已安装 ElementUI,可通过 npm 或 yarn 安装: npm install element-ui 在 main.js 中全…

php实现域名

php实现域名

PHP实现域名操作的方法 获取当前域名 使用$_SERVER['HTTP_HOST']可以获取当前访问的域名: $currentDomain = $_SERVER['HTTP_HOST']; ech…

php实现支付宝支付

php实现支付宝支付

支付宝支付集成步骤 准备工作 在开始集成支付宝支付前,确保已注册支付宝开放平台账号并完成企业实名认证。创建应用后获取APPID、应用私钥和支付宝公钥。 配置支付宝SDK 通过Composer安装支付…