当前位置:首页 > PHP

php分页代码实现

2026-02-14 00:20:34PHP

PHP 分页代码实现

基础分页逻辑

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

php分页代码实现

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

完整分页示例

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

php分页代码实现

// 数据库连接
$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 页)可添加省略号或分页区间显示

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

相关文章

js实现分页功能代码

js实现分页功能代码

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

vue实现列表分页

vue实现列表分页

Vue 列表分页实现方法 基础分页实现 安装依赖(如使用第三方库) npm install vue-paginate 模板部分示例 <template> <div>…

vue 分页功能实现

vue 分页功能实现

分页功能实现方法 使用 Element UI 的分页组件 Element UI 提供了现成的分页组件 el-pagination,可以快速实现分页功能。 安装 Element UI: npm in…

vue实现代码

vue实现代码

以下是Vue实现常见功能的代码示例,涵盖基础语法、组件通信、状态管理等核心内容: 基础模板语法 <template> <div> <h1>{{ mes…

如何实现分页vue

如何实现分页vue

使用 v-pagination 组件(Vuetify) 如果项目使用 Vuetify,可以直接使用内置的 v-pagination 组件。该组件提供了分页功能,支持自定义样式和事件。 <tem…

vue实现登录代码

vue实现登录代码

以下是一个基于 Vue.js 的登录功能实现示例,包含表单验证和异步请求处理: 基础组件结构 <template> <div class="login-container"&g…