php分页页码动态的实现

涛哥 PHP代码

在 PHP 中实现分页页码动态生成通常需要计算出总页数,并根据当前页数和总页数生成相应的页码。以下是一个简单的示例代码,展示如何实现分页页码动态生成:

<?php
// 从数据库或其他数据源中获取数据
$data = get_data_from_database();

// 每页显示的数据数量
$limit = 10;

// 当前页码
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;

// 数据总数
$total = count($data);

// 计算总页数
$total_pages = ceil($total / $limit);

// 确保当前页码不超过总页数
$page = max(1, min($page, $total_pages));

// 获取当前页码的数据
$start = ($page - 1) * $limit;
$end = min($start + $limit - 1, $total - 1);
$page_data = array_slice($data, $start, $end - $start + 1);

// 生成页码链接
$links = '';
$range = 3; // 当前页码左右各显示几个页码链接
for ($i = max(1, $page - $range); $i <= min($page + $range, $total_pages); $i++) {
    if ($page == $i) {
        $links .= "<span>$i</span>";
    } else {
        $links .= "<a href=\"?page=$i\">$i</a>";
    }
}

// 输出数据和页码链接
foreach ($page_data as $row) {
    // 输出数据
    echo "<p>{$row['id']}: {$row['name']}</p>";
}
// 输出页码链接
echo "<div class=\"pagination\">{$links}</div>";
?>

在上面的代码中,我们首先从数据库或其他数据源中获取数据,并设置每页显示的数据数量和当前页码。然后,我们计算数据总数和总页数,并根据当前页码获取当前页码的数据。最后,我们根据当前页码和总页数生成页码链接。

在生成页码链接时,我们使用一个循环来生成当前页码左右各显示几个页码链接(在这个例子中使用了固定的 3)。在循环中,我们根据当前页码和总页数生成相应的链接,并使用 max()min() 函数确保页码链接不超过总页数。如果当前页码等于当前循环到的页码,则显示纯文本,否则显示链接。

最后,我们输出数据和页码链接,其中数据使用一个循环来逐个输出,而页码链接则以一个带有样式的 div 元素的形式输出。您可以根据需要调整输出方式和样式。

推荐阅读:

java代码实现分页功能技术详解

html实现分页显示数据代码实例