php之数字分页
本小解承接上一节,https://blog.csdn.net/weixin_44797182/article/details/103280034
数字分页的制作
在从第几个开始显示的数据中,有个需要注意的点,开始显示的数据,这里假设一页显示10个,页数 1,2,3.。。。n
- 第一页 limit 0,10 ;
- 第二页 limit 11,10;
- 第三页 limit 21,10;
- 第n页 limit (n-1) *10
// 获取点击的页数num
$getnum = $_GET['num'];
// 每页显示几个
$pagesize = 2;
// 从第几个开始,
$pagestart = ($getnum - 1) * $pagesize;
// 获取数据库中的数据 并以倒序的方式 显示在页面上
$query = "SELECT bc_username,bc_sex,bc_face FROM bc_user ORDER BY bc_reg_time DESC LIMIT $pagestart,$pagesize";
$result = mysql_query($query);
// 获取需要几个按钮
$query_pagination = "SELECT bc_id FROM bc_user ";
$result_pagination = mysql_query($query_pagination);
$num_rows = mysql_num_rows($result_pagination); //获取数据库中有几条数据
$pagenum = ceil($num_rows / $pagesize);
//html部分
<div id="pagination">
<ul>
<?php for ($i = 0; $i < $pagenum; $i++) {
echo '<li><a href="blog.php?num=' . ($i + 1) . '">' . ($i + 1) . '</a></li>';
} ?>
</ul>
</div>
这样就完成了一个最简单的数字分页,但还有不少毛病,只举例几个,如下
1,刚进入没有点击按钮之前会报错,因为刚进入时木有点击之后传输的值
2,在上方修改地址栏的num时没如果不在范围内会报错
3,修改地址栏 num=‘’或者num<=0;报错
4,数据库为0出错
// 获取点击的页数num
if (isset($_GET['num'])) {
$getnum = $_GET['num'];
if ($_GET['num'] == '' || $_GET['num'] <= 0) {
$getnum = 1;
} else {
$getnum = intval($getnum);
}
} else {
$getnum = 1;
}
// 每页显示几个
$pagesize = 2;
// 获取需要几个按钮
$query_pagination = "SELECT bc_id FROM bc_user ";
$result_pagination = mysql_query($query_pagination);
$num_rows = mysql_num_rows($result_pagination);
if ($num_rows == 0) {
$pagenum = 1;
} else {
$pagenum = ceil($num_rows / $pagesize);
}
if ($getnum > $pagenum) {
$getnum = $pagenum;
}
// 从第几个开始,
$pagestart = ($getnum - 1) * $pagesize;
// echo $pagenum;
// 获取数据库中的数据 并以倒序的方式 显示在页面上
$query = "SELECT bc_username,bc_sex,bc_face FROM bc_user ORDER BY bc_reg_time DESC LIMIT $pagestart,$pagesize";
$result = mysql_query($query);