当我们需要在网站上展示大量数据时,分页技术就显得尤为重要。下面是一份示例代码,可以帮助你快速实现漂亮分页的功能。
简介
这份代码使用PHP实现,使用了Bootstrap框架以及MySQL数据库。该分页功能代码包含以下内容:
- 数据库连接(使用PDO连接);
- 获取总页数;
- 获取当前页数据;
- 显示分页页码。
数据库连接
在代码的开头,我们需要使用PDO连接数据库。以下是使用PDO连接MySQL数据库的示例代码:
$dbconfig = array(
'dsn' => 'mysql:host=localhost; dbname=test',
'username' => 'root',
'password' => '',
'options' => array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
try {
$pdo = new PDO($dbconfig['dsn'], $dbconfig['username'], $dbconfig['password'], $dbconfig['options']);
} catch (PDOException $e) {
exit('Database error: ' . $e->getMessage());
}
获取总页数
接下来我们需要计算出总的分页数,以便于我们在页面上正确地渲染分页列表。具体实现过程如下:
// 分页
$page = isset($_GET['page']) && intval($_GET['page']) > 0 ? intval($_GET['page']) : 1; // 当前页码
$pageSize = isset($_GET['page_size']) && intval($_GET['page_size']) > 0 ? intval($_GET['page_size']) : 10; // 每页显示的记录条数
// 计算总页数
$count = $pdo->query('SELECT COUNT(*) AS num FROM table')->fetch(PDO::FETCH_ASSOC)['num']; // 总记录数
$pageCount = ceil($count / $pageSize); // 总页数
以上代码中,我们从数据库中获取总记录数,并通过ceil()
函数计算出总页数。
获取当前页数据
我们需要从计算出的分页数中获取当前页的记录。具体实现方法如下:
// 获取当前页数据
$offset = ($page - 1) * $pageSize; // 计算分页偏移量
$rows = $pdo->query("SELECT * FROM table LIMIT {$offset}, {$pageSize}")->fetchAll(PDO::FETCH_ASSOC);
以上代码中,我们首先根据当前页码和每页显示记录数计算了分页偏移量,然后使用LIMIT
关键字从数据库中读取数据。
显示分页页码
最后的一步是渲染分页页码。我们使用Bootstrap框架中的pagination
组件。示例代码如下:
// 渲染分页
echo '<ul class="pagination">';
// 上一页
$prevPage = $page - 1; // 上一页页码
if ($page == 1) { // 当前页为第一页,上一页不可用
echo '<li class="page-item disabled"><a class="page-link" href="#">上一页</a></li>';
} else {
echo "<li class='page-item'><a class='page-link' href='?page={$prevPage}&page_size={$pageSize}'>上一页</a></li>";
}
// 分页页码
for ($i = 1; $i <= $pageCount; $i++) {
if ($i == $page) { // 当前页,添加激活样式
echo "<li class='page-item active'><a class='page-link' href='#'>{$i}</a></li>";
} else {
echo "<li class='page-item'><a class='page-link' href='?page={$i}&page_size={$pageSize}'>{$i}</a></li>";
}
}
// 下一页
$nextPage = $page + 1; // 下一页页码
if ($page == $pageCount) { // 当前页为最后一页,下一页不可用
echo '<li class="page-item disabled"><a class="page-link" href="#">下一页</a></li>';
} else {
echo "<li class='page-item'><a class='page-link' href='?page={$nextPage}&page_size={$pageSize}'>下一页</a></li>";
}
echo '</ul>';
这里我们遍历了分页列表,根据当前页是否为激活页码的方式添加了样式。
示例
以下两个链接是展示漂亮分页的示例,可以供你参考:
以上是使用PHP实现漂亮分页方法的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php实现的漂亮分页方法 - Python技术站