php新闻分页代码

以下是一个简单的 PHP 新闻分页代码示例:

<?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "news";

    // 创建连接
    $conn = new mysqli($servername, $username, $password, $dbname);
    // 检测连接
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }

    // 分页参数
    $page = isset($_GET['page']) ? $_GET['page'] : 1;
    $limit = 10;
    $offset = ($page - 1) * $limit;

    // 查询新闻数据
    $sql = "SELECT * FROM news LIMIT $offset,$limit";
    $result = $conn->query($sql);

    // 显示新闻列表
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            echo "<h2>" . $row["title"]. "</h2><p>" . $row["content"] . "</p>";
        }
    } else {
        echo "没有新闻可显示";
    }

    // 计算总页数和生成分页链接
    $sql = "SELECT COUNT(*) AS total FROM news";
    $result = $conn->query($sql);
    $total = ceil($result->fetch_assoc()['total'] / $limit);

    $prev_page = max(1, $page - 1);
    $next_page = min($total, $page + 1);

    echo "<div style='text-align:center;'>";
    echo "<a href='?page=$prev_page'>上一页</a> ";
    for ($i=1; $i<=$total; $i++) {
        echo "<a href='?page=$i'>$i</a> ";
    }
    echo "<a href='?page=$next_page'>下一页</a>";
    echo "</div>";

    // 关闭连接
    $conn->close();
?>

这个示例中,我们首先建立了一个与 MySQL 数据库的连接。然后,我们定义了分页参数,包括当前页码、每页显示的新闻数量和偏移量。接着,我们查询数据库获取新闻数据,并通过一个循环将其逐一显示出来。

计算总页数和生成分页链接是本例的重点。我们再次查询数据库获取新闻总数,并使用总数和每页显示的新闻数量计算出总页数。然后,我们根据当前页码生成上一页和下一页的链接,并在页面底部显示所有页码的链接。

需要注意的是,我们在生成链接时必须考虑到边界情况。例如,上一页的链接应该在第一页时消失,下一页的链接应该在最后一页时消失。

分页功能对于网站的用户体验至关重要,因为它可以有效地减少页面加载时间和数据传输量。通常情况下,只需要将数据按照某种规则进行分段处理即可实现分页功能。在 PHP 中,我们可以使用 MySQL 的 LIMIT 语句来实现数据分段,同时根据总数和每页显示数量计算出总页数,并为每个页码生成链接即可实现分页。

posted @ 2023-06-03 11:02  拓源技术  阅读(53)  评论(0编辑  收藏  举报