当前位置:首页 > PHP

php分页代码简单实现

2026-02-27 11:03:54PHP

基本分页逻辑实现

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

$perPage = 10; // 每页条数
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // 当前页码
$offset = ($page - 1) * $perPage; // 计算偏移量

// 查询当前页数据
$sql = "SELECT * FROM your_table LIMIT $offset, $perPage";
$result = mysqli_query($conn, $sql);

计算总页数

需要先获取数据总量才能计算总页数:

$totalQuery = "SELECT COUNT(*) as total FROM your_table";
$totalResult = mysqli_query($conn, $totalQuery);
$totalRow = mysqli_fetch_assoc($totalResult);
$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>';

完整示例代码

结合数据库连接和样式的基本实现:

<?php
$conn = mysqli_connect("localhost", "username", "password", "database");

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

// 获取当前页数据
$sql = "SELECT * FROM articles LIMIT $offset, $perPage";
$result = mysqli_query($conn, $sql);

// 显示数据
while ($row = mysqli_fetch_assoc($result)) {
    echo "<h3>{$row['title']}</h3>";
    echo "<p>{$row['content']}</p>";
}

// 计算总页数
$totalResult = mysqli_query($conn, "SELECT COUNT(*) as total FROM articles");
$totalRow = mysqli_fetch_assoc($totalResult);
$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>';

mysqli_close($conn);
?>

样式优化建议

为分页链接添加基础CSS样式:

php分页代码简单实现

.pagination {
    margin-top: 20px;
}
.pagination a {
    display: inline-block;
    padding: 8px 16px;
    margin: 0 4px;
    border: 1px solid #ddd;
    text-decoration: none;
}
.pagination a.active {
    background-color: #4CAF50;
    color: white;
    border: 1px solid #4CAF50;
}

注意事项

  • 务必对$_GET['page']进行类型转换和验证,防止SQL注入
  • 大型数据集建议使用缓存机制优化性能
  • 实际项目中建议将分页逻辑封装成可复用函数或类

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

相关文章

vue实现滚动分页

vue实现滚动分页

实现滚动分页的基本思路 滚动分页(Infinite Scroll)是一种常见的前端分页加载方式,当用户滚动到页面底部时自动加载下一页数据。Vue 结合现代前端工具可以轻松实现这一功能。 监听滚动事件…

vue实现分页缩进

vue实现分页缩进

vue实现分页缩进的方法 使用v-for和计算属性实现分页 通过计算属性对数据进行分页处理,结合v-for渲染分页数据。计算属性根据当前页码和每页显示数量对原始数据进行切片。 computed: {…

vue实现分页6

vue实现分页6

Vue实现分页的6种方法 基础分页组件实现 使用Vue的v-for指令和计算属性实现基础分页功能。通过计算总页数并动态渲染页码按钮,结合v-model绑定当前页码。 <template>…

vue实现滑动分页

vue实现滑动分页

Vue 实现滑动分页的方法 监听滚动事件实现分页加载 在 Vue 中可以通过监听滚动事件来实现滑动分页。需要监听滚动位置,当滚动到底部时加载更多数据。 <template> <…

vue实现分页累加

vue实现分页累加

Vue实现分页累加 基础思路 分页累加通常指滚动加载更多数据时,保留已加载内容并追加新数据。Vue中可通过监听滚动事件或结合第三方库实现。 核心代码实现 数据定义 data() { retur…

vue mui实现分页

vue mui实现分页

vue mui实现分页的方法 在Vue项目中结合MUI框架实现分页功能,可以通过以下步骤完成。假设使用的是MUI的官方组件或类似UI库(如Mint UI),以下是具体实现方式: 安装MUI或相关UI…