当前位置:首页 > PHP

php实现文章分页

2026-02-15 10:19:50PHP

PHP实现文章分页的方法

数据库分页查询

使用SQL的LIMIT子句实现分页查询。假设每页显示10条数据,当前页码为$page

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

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

计算总页数

查询总记录数并计算总页数:

$totalSql = "SELECT COUNT(*) as total FROM articles";
$totalResult = $conn->query($totalSql);
$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>';

使用PDO预处理语句

更安全的方式是使用PDO预处理语句:

$stmt = $conn->prepare("SELECT * FROM articles LIMIT :offset, :perPage");
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':perPage', $perPage, PDO::PARAM_INT);
$stmt->execute();
$articles = $stmt->fetchAll(PDO::FETCH_ASSOC);

前端显示优化

添加当前页样式和上一页/下一页按钮:

echo '<div class="pagination">';
if ($page > 1) {
    echo '<a href="?page=' . ($page - 1) . '">上一页</a> ';
}

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

if ($page < $totalPages) {
    echo '<a href="?page=' . ($page + 1) . '">下一页</a>';
}
echo '</div>';

AJAX分页实现

使用jQuery实现无刷新分页:

$(document).on('click', '.pagination a', function(e) {
    e.preventDefault();
    var page = $(this).attr('href').split('page=')[1];
    $.ajax({
        url: 'get_articles.php',
        type: 'GET',
        data: {page: page},
        success: function(data) {
            $('#articles-container').html(data);
        }
    });
});

性能优化建议

对于大型数据集,考虑使用缓存分页结果。添加ORDER BY子句确保分页顺序一致:

php实现文章分页

$sql = "SELECT * FROM articles ORDER BY created_at DESC LIMIT $offset, $perPage";

标签: 分页文章
分享给朋友:

相关文章

分页实现vue

分页实现vue

分页实现方法(Vue) 使用Element UI分页组件 安装Element UI库后,可以直接使用其分页组件。在模板中添加el-pagination,通过v-model绑定当前页码,设置page-s…

js实现分页功能代码

js实现分页功能代码

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

vue实现文章滚动

vue实现文章滚动

实现文章滚动的基本方法 在Vue中实现文章滚动效果,可以通过原生JavaScript或CSS结合Vue的响应式特性完成。以下是几种常见实现方式: 使用CSS动画实现平滑滚动 .scroll-con…

vue加载实现分页

vue加载实现分页

Vue 实现分页加载的方法 使用 Element UI 的分页组件 安装 Element UI 后,可以直接使用其分页组件。在模板中添加分页组件,并绑定相关事件和数据。 <template&g…

vue实现网页分页

vue实现网页分页

Vue 实现网页分页的方法 使用计算属性实现分页 在 Vue 中可以通过计算属性对数据进行分页处理。定义一个 currentPage 和 pageSize,利用计算属性返回当前页的数据。 data(…

vue实现分页按钮

vue实现分页按钮

实现分页按钮的基本思路 在Vue中实现分页按钮通常需要结合计算属性、事件绑定和动态样式。核心逻辑包括计算总页数、生成页码数组、处理页码切换事件以及高亮当前页码。 基础实现代码示例 <templ…