当前位置:首页 > 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);

生成分页链接

创建分页导航链接:

php实现文章分页

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);

前端显示优化

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

php实现文章分页

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子句确保分页顺序一致:

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

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

相关文章

vue搜索分页实现

vue搜索分页实现

Vue 搜索分页实现方法 基本思路 搜索分页通常需要结合后端API,前端通过Vue组件实现搜索框、分页器和数据列表的联动。核心逻辑包括:监听搜索输入变化、分页参数变化,触发数据请求并更新视图。 实现…

vue 实现前端分页

vue 实现前端分页

实现前端分页的基本思路 在Vue中实现前端分页,通常需要将数据存储在组件的data或computed属性中,然后通过计算当前页的数据切片进行展示。以下是具体实现方法。 定义数据和分页参数 在Vue组…

vue实现分页全选

vue实现分页全选

Vue 实现分页全选功能 分页全选功能通常用于表格或列表数据,允许用户跨页批量选择数据。以下是实现该功能的几种方法: 使用 Vuex 或 Pinia 管理选中状态 全局状态管理工具(如 Vuex 或…

vue实现树形分页

vue实现树形分页

Vue 实现树形分页的方法 使用递归组件渲染树形结构 创建一个递归组件处理树形数据,通过 v-for 遍历子节点并动态渲染。组件需判断当前节点是否展开,并支持分页逻辑。 <templa…

vue中分页的实现

vue中分页的实现

分页组件实现 在Vue中实现分页功能通常需要结合后端API的分页数据返回和前端的分页组件展示。以下是常见的实现方法: 基础分页组件 <template> <div class…

vue elementui 分页的实现

vue elementui 分页的实现

Vue + ElementUI 分页实现方法 安装与引入 确保已安装 ElementUI,若未安装可通过以下命令安装: npm install element-ui -S 在 main.js 中全局…