当前位置:首页 > PHP

php分页代码实现

2026-02-14 00:20:34PHP

PHP 分页代码实现

基础分页逻辑

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

$perPage = 10;
$offset = ($page - 1) * $perPage;
$sql = "SELECT * FROM articles LIMIT $offset, $perPage";

完整分页示例

以下是一个结合 MySQL 和 HTML 的完整分页实现:

// 数据库连接
$db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

// 获取总记录数
$total = $db->query('SELECT COUNT(*) FROM articles')->fetchColumn();

// 分页参数
$perPage = 5;
$pages = ceil($total / $perPage);
$page = $_GET['page'] ?? 1;
$offset = ($page - 1) * $perPage;

// 查询当前页数据
$stmt = $db->query("SELECT * FROM articles LIMIT $offset, $perPage");
$articles = $stmt->fetchAll(PDO::FETCH_ASSOC);

分页导航生成

在 HTML 中生成分页链接(需放在视图文件中):

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

安全增强

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

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

优化建议

  1. 大型数据集建议使用 WHERE 条件缩小查询范围
  2. 可添加「上一页/下一页」按钮提升用户体验
  3. 超过一定页数时(如 20 页)可添加省略号或分页区间显示

php分页代码实现

标签: 分页代码
分享给朋友:

相关文章

vue实现下拉分页思想

vue实现下拉分页思想

实现下拉分页的基本思想 下拉分页(Infinite Scroll)是一种常见的分页加载方式,当用户滚动到页面底部时自动加载下一页数据。Vue 中可以通过监听滚动事件或使用第三方库实现。 监听滚动事件…

vue 分页 实现

vue 分页 实现

Vue 分页实现方法 使用 Element UI 分页组件 Element UI 提供了现成的分页组件 el-pagination,适合快速集成。需要先安装 Element UI 库。 安装 Ele…

js实现分页功能代码

js实现分页功能代码

分页功能实现方法 客户端分页(前端处理数据) 适用于数据量较小且已全部加载到前端的情况。 // 示例数据 const data = Array.from({length: 100}, (_, i)…

vue实现后台分页

vue实现后台分页

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

分页用vue实现

分页用vue实现

实现分页的基本思路 在Vue中实现分页功能,通常需要以下几个核心部分:数据列表、当前页码、每页显示数量、总页数计算、页码切换逻辑。以下是一个完整的实现方案。 分页组件代码示例 <templat…

php实现文件下载代码

php实现文件下载代码

实现文件下载的基本方法 使用PHP实现文件下载的核心是通过设置HTTP头部信息,强制浏览器触发下载行为而非直接显示文件内容。 $file_path = 'path/to/your/file.ext'…