在PHP和MySQL中实现数据分页,你可以使用以下步骤:
mysqli
或PDO
扩展来实现连接。使用mysqli
:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
使用PDO
:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
LIMIT
和OFFSET
子句。LIMIT
子句用于限制返回的记录数,而OFFSET
子句用于指定从哪一条记录开始返回。$page = isset($_GET['page']) ? $_GET['page'] : 1; // 获取当前页数,默认为1
$limit = 10; // 每页显示的记录数
$offset = ($page - 1) * $limit; // 计算偏移量
$sql = "SELECT * FROM myTable LIMIT $limit OFFSET $offset";
$result
。然后,你可以遍历结果并显示出来。$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 结果";
}
// 获取总记录数
$total_sql = "SELECT COUNT(*) FROM myTable";
$total_result = $conn->query($total_sql);
$total_rows = $total_result->fetch_row()[0];
$total_pages = ceil($total_rows / $limit); // 计算总页数
// 显示分页导航
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
这样,你就可以实现一个基本的分页功能。你可以根据实际需求对其进行修改和优化。