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);

其他

在这里插入图片描述

posted @ 2022-04-02 09:47  coderwcb  阅读(16)  评论(0编辑  收藏  举报