千家信息网

PHP、MYSQLI实现分页(初学者)

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,//初次实现分页功能的想法(当然了,是别人的想法,我只是记录了下来而已)//1. 求出总条数 假如13条 //准备sql语句(查询出数据库bbs_user表数据的总条数) $sql =
千家信息网最后更新 2025年01月21日PHP、MYSQLI实现分页(初学者)


//初次实现分页功能的想法(当然了,是别人的想法,我只是记录了下来而已)



//1. 求出总条数 假如13条

     //准备sql语句(查询出数据库bbs_user表数据的总条数)    $sql = "select count(*) as count from bbs_user";        //发送sql语句(接收过来查询到条数)    $result = mysqli_query($conn,$sql);        //处理结果集    $pageRes = mysqli_fetch_assoc($result);    //var_dump($pageRes);
     //$count把条数从结果集里取出(总条数)    $count = $pageRes['count'];


var_dump($count) ;看一看:



//2. 需求:每页只显示5条


$num = 5;


//3. ceil(总条数/每页显示数) ceil是向上取整,就算剩一条也要单独占一页 (3页)


$pageCount = ceil($count / $num);   //分的页数

var_dump($pageCount) ;打印查一下:



//4. 根据总页数求出偏移量(即下一页开始是第几条,下边推出的公式)


 $offset = ($page - 1) * $sum(5);



//5. $page 可以设置默认值为 1 ,但是还没有值,所以我们可以给定一个初值

$page = 1;


//6. 修改sql语句(此sql非 彼sql语句),使用limit限制(下边的推导)


$sql = "select * from bbs_user limit " . $offect . ',' . $num;       //其中limit后边必须跟空格,否则会出错

//可以运行看看出现什么效果




//7. 我们是不是还没有写上一页、下一页、首页以及尾页?


        首页       上一页       下一页       尾页



//8. 修改$page的初值 , 我们自动获取page的值


$page = $_GET['page'];


//此时我们会发现竟然出错了 !空?怎么改?


//我们的初始目的是让$page的初值为 1 ,我们可以这样,加一个条件判断,如果空就为 1,否则就是得到的页数

$page = empty($_GET['page'])? 1 : $_GET['page'];//三目运算



//9. 我们先把链接给定首页和尾页(简单),再把上一页下一页写上

//首页就是主页面,即page=1

首页


//尾页就是总页数(可以想一下,总页数就是最后一页)

尾页


//上一页我们先用一个$prev表示

上一页


//下一页同上一页,用$next表示

下一页



//10. 写完了链接,但是$prev和$next我们还没有给值呢

//上一页的话就是$page - 1了

 $prev = $page - 1 ;


//那么下一页就是$page + 1了

$next = $page + 1 ;




//11. 因为$page的初值为 1 , (参考第 5 步或第 8 步), 所以$prev会到 0 , $next会是page+1,也就是我们点下一页page就会增加 1 ,我们可以加一个限制条件


       if($prev < 1){        $prev = 1 ;    }    if($next > $pageCount){        $next = $pageount ;    }






select * from bbs_user limit 0 , 5 这是第一页 1

select * from bbs_user limit 5 , 5 这是第二页 2

select * from bbs_user limit 10 , 5 这是第三页 3

select * from bbs_user limit 15 , 5 这是第四页 4

推出来的公式
($page - 1) * $sum (5) //$page是当前页数




这是我预先写好的查询页面,如下:

系统主页面";    echo "";    echo "";    while($row = mysqli_fetch_assoc($obj)){        echo "";            echo '';            echo '';            echo '';            echo '';            echo '';            echo '';            echo '';        echo "";    }        echo "
编号姓名密码地址性别年龄操作
'.$row['id'].''.$row['username'].''.$row['password'].''.$row['address'].''.$row['sex'].''.$row['age'].'删除/修改
"; echo "
添加"; echo "
"; mysqli_close($conn);?>



最后的源代码:

系统主页面";    echo "";    echo "";    while($row = mysqli_fetch_assoc($obj)){        echo "";            echo '';            echo '';            echo '';            echo '';            echo '';            echo '';            echo '';        echo "";    }        echo "
编号姓名密码地址性别年龄操作
'.$row['id'].''.$row['username'].''.$row['password'].''.$row['address'].''.$row['sex'].''.$row['age'].'删除/修改
"; #echo "添加"; echo "
"; //10.设置上一页下一页的$prev和$next $prev = $page - 1; $next = $page + 1; //11.设置页数限制 if($prev<1){ $prev = 1; } if($next>$pageCount){ $next = $pageCount; } //关闭连接 mysqli_close($conn);?> 首页    上一页    下一页    尾页


0