数据分页是将大量数据分割成若干较小的页面,以提高用户体验和系统性能的技术。在PHP中,实现数据分页通常涉及以下步骤和原理:
查询总记录数:在进行分页之前,需要知道总共有多少条记录。通常使用 COUNT() 查询获取总记录数。
计算分页信息:根据总记录数、每页显示的记录数以及当前页码,计算出分页所需的信息,如总页数、当前页的起始记录索引等。
执行分页查询:根据分页信息,从数据库中获取相应页码的数据。
在页面上呈现数据:将获取到的数据展示在页面上,并提供分页导航链接,让用户能够浏览不同页的数据。
连接数据库(conn.php):
<?php
// 数据库连接
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
?>
前端输出分页数据(index.php):
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>PHP分页</title>
</head>
<body>
<div id="records">
<?php
include 'conn.php';
// 分页参数
$records_per_page = 10;
$page = isset($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1;
$offset = ($page - 1) * $records_per_page;
// 查询总记录数
$total_pages_sql = "SELECT COUNT(*) as total FROM your_table"; // 查询总记录数的SQL语句
$result = mysqli_query($conn, $total_pages_sql); // 执行查询
$row = mysqli_fetch_assoc($result); // 获取查询结果的关联数组
$total_records = $row['total']; // 获取总记录数
$total_pages = ceil($total_records / $records_per_page); // 计算总页数
// 执行分页查询
$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page"; // 构建分页查询的SQL语句
$result = mysqli_query($conn, $sql); // 执行查询
if (mysqli_num_rows($result) > 0) {
echo '<ul>';
while ($row = mysqli_fetch_assoc($result)) {
echo '<li>' . $row['column_name'] . '</li>';
}
echo '</ul>';
} else {
echo '<p>没有找到数据</p>';
}
// 关闭连接
mysqli_close($conn);
?>
</div>
<div>
<?php if ($page > 1): ?>
<a href="?page=<?php echo ($page-1); ?>">上一页</a>
<?php endif; ?>
<?php for ($i = 1; $i <= $total_pages; $i++): ?>
<a href="?page=<?php echo $i; ?>"><?php echo "第 {$i} 页"; ?></a>
<?php endfor; ?>
<?php if ($page < $total_pages): ?>
<a href="?page=<?php echo ($page+1); ?>">下一页</a>
<?php endif; ?>
</div>
</body>
</html>
本站原创内容,如需转载请注明来源:https://www.liutonghui.com/27.html
评论列表(0条)
暂时没有评论!