php实现简单分页代码示例

涛哥 PHP代码

在 PHP 中,可以使用 MySQL 的 LIMIT 和 OFFSET 子句来实现分页。以下是一个简单的示例代码,展示如何使用 LIMIT 和 OFFSET 子句来实现分页:

<?php
// 连接到 MySQL 数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 设置每页显示的记录数和当前页码
$records_per_page = 10;
$current_page = isset($_GET['page']) ? $_GET['page'] : 1;

// 计算要跳过的记录数
$offset = ($current_page - 1) * $records_per_page;

// 查询数据库并限制结果集的行数和偏移量
$sql = "SELECT * FROM myTable LIMIT $records_per_page OFFSET $offset";
$result = $conn->query($sql);

// 处理查询结果
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 结果";
}

// 计算总记录数和总页数
$sql = "SELECT COUNT(*) AS total FROM myTable";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
$total_pages = ceil($total_records / $records_per_page);

// 输出分页链接
for ($i=1; $i<=$total_pages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}

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

在上面的代码中,我们首先连接到 MySQL 数据库。然后,我们设置每页显示的记录数 $records_per_page 和当前页码 $current_page,这些值通常从用户的输入或请求参数中获取。接下来,我们计算要跳过的记录数 $offset,以便从正确的位置开始查询数据库。

然后,我们使用 LIMIT 和 OFFSET 子句查询数据库,并处理查询结果。我们还查询总记录数和总页数,并输出分页链接。最后,我们关闭数据库连接。

请注意,这是一个简单的示例代码,它假设我们只有一个表,并且我们想要将表中的所有记录分页显示。在实际应用中,我们可能需要更复杂的查询和更灵活的分页设置。同时,我们还需要注意防止 SQL 注入攻击,可以使用参数化查询或其他防御措施来保护数据库安全。