当前位置:首页 > PHP

php分页效果实现

2026-04-03 10:43:30PHP

PHP 分页效果实现

数据库查询与分页逻辑

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

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

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

计算总页数

需要查询总数据量以确定分页数量:

$totalItems = $conn->query("SELECT COUNT(*) FROM articles")->fetch_row()[0];
$totalPages = ceil($totalItems / $itemsPerPage);

生成分页导航

通过循环生成页码链接,并添加当前页高亮样式:

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

样式优化建议

为分页导航添加基础 CSS 样式:

.pagination {
    margin: 20px 0;
}
.pagination a {
    padding: 8px 12px;
    border: 1px solid #ddd;
    margin-right: 5px;
}
.pagination a.active {
    background: #007bff;
    color: white;
    border-color: #007bff;
}

高级分页功能

对于大量数据可分页时显示部分页码:

$range = 2; // 当前页前后显示范围
echo '<div class="pagination">';
if ($page > 1) echo "<a href='?page=1'>&laquo;</a>";

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

if ($page < $totalPages) echo "<a href='?page=$totalPages'>&raquo;</a>";
echo '</div>';

AJAX 分页实现

通过 jQuery 实现无刷新分页:

php分页效果实现

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

标签: 分页效果
分享给朋友:

相关文章

vue elementui实现分页

vue elementui实现分页

使用 Element UI 实现 Vue 分页功能 Element UI 提供了 el-pagination 组件,可以方便地实现分页功能。以下是具体实现步骤: 安装 Element UI 确保项目…

vue实现框架效果

vue实现框架效果

Vue实现框架效果的方法 使用Vue实现框架效果可以通过多种方式完成,包括使用Vue Router、动态组件或第三方UI库。以下是几种常见的方法: 使用Vue Router实现布局框架 Vue Ro…

vue实现吸附效果

vue实现吸附效果

实现吸附效果的基本思路 吸附效果通常指当页面滚动到某个位置时,元素固定在视口的特定位置。Vue中可以通过监听滚动事件结合CSS的position: sticky或动态样式切换实现。 使用CSS的po…

vue实现滚动效果

vue实现滚动效果

Vue 实现滚动效果的方法 使用原生滚动方法 通过 Vue 的 ref 获取 DOM 元素,调用原生 scrollTo 或 scrollIntoView 方法实现滚动。 <template&g…

vue实现过渡效果

vue实现过渡效果

Vue 过渡效果实现方法 Vue 提供了内置的 <transition> 和 <transition-group> 组件,用于在元素或组件进入/离开 DOM 时应用过渡效果。以…

vue实现滑动效果

vue实现滑动效果

Vue 实现滑动效果的方法 在 Vue 中实现滑动效果可以通过多种方式,包括使用 CSS 过渡、第三方动画库或直接操作 DOM。以下是几种常见的方法: 使用 CSS 过渡和 Vue 的 <tr…