当前位置:首页 > PHP

php 实现分页

2026-02-28 11:39:23PHP

PHP 实现分页的方法

使用 MySQL LIMIT 和 OFFSET

分页通常通过 SQL 的 LIMITOFFSET 实现。假设每页显示 10 条记录,当前页码为 $page

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

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

计算总页数

需要查询总记录数以计算总页数:

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

生成分页链接

在页面底部生成分页导航:

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

使用 Bootstrap 分页样式

如果需要更美观的分页,可以结合 Bootstrap:

echo '<nav aria-label="Page navigation">';
echo '<ul class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
    $active = $i == $page ? 'active' : '';
    echo '<li class="page-item ' . $active . '"><a class="page-link" href="?page=' . $i . '">' . $i . '</a></li>';
}
echo '</ul>';
echo '</nav>';

使用预处理语句防止 SQL 注入

为确保安全性,建议使用预处理语句:

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

封装为函数

可以将分页逻辑封装为函数以便复用:

function getPaginatedData($conn, $table, $perPage = 10, $page = 1) {
    $offset = ($page - 1) * $perPage;
    $stmt = $conn->prepare("SELECT * FROM $table LIMIT ? OFFSET ?");
    $stmt->bind_param("ii", $perPage, $offset);
    $stmt->execute();
    return $stmt->get_result();
}

使用第三方库

对于复杂项目,可以考虑使用分页库如 illuminate/pagination(Laravel 组件):

php 实现分页

use Illuminate\Pagination\Paginator;

$perPage = 10;
$currentPage = $_GET['page'] ?? 1;
$items = [...]; // 你的数据数组

$paginator = new Paginator($items, $perPage, $currentPage);
foreach ($paginator as $item) {
    // 显示每项内容
}
echo $paginator->links(); // 显示分页链接

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

相关文章

vue实现后台分页

vue实现后台分页

实现后台分页的方法 在Vue中实现后台分页通常需要结合前端和后端逻辑,后端负责处理数据分页,前端负责展示分页数据和交互。以下是具体实现方法: 后端API设计 后端需要提供支持分页的API接口,通常包…

vue实现选项卡分页

vue实现选项卡分页

实现选项卡分页的基本思路 在Vue中实现选项卡分页功能,可以通过动态组件或条件渲染结合数据绑定完成。核心逻辑是维护一个当前激活的选项卡状态,根据用户点击切换内容。 使用v-if条件渲染 通过v-if…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…

php实现定时

php实现定时

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

php实现过程

php实现过程

PHP 实现过程 PHP 是一种广泛使用的服务器端脚本语言,特别适合 Web 开发。以下是 PHP 实现过程的关键步骤和注意事项。 安装与配置 下载并安装 PHP,可以从官方 PHP 网站获取最新版…

jquery分页

jquery分页

jQuery分页的实现方法 jQuery分页可以通过多种方式实现,以下是几种常见的方法: 使用插件实现分页 jQuery有许多优秀的分页插件,如jQuery Pagination、DataTabl…