bco 发表于 2018-12-12 10:31:11

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) ;看一看:
http://s1.运维网.com/images/20180319/1521470124923445.png

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

   

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

$pageCount = ceil($count / $num);   //分的页数  var_dump($pageCount) ;打印查一下:
http://s1.运维网.com/images/20180319/1521470202639958.png
  
//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后边必须跟空格,否则会出错  //可以运行看看出现什么效果
http://s1.运维网.com/images/20180319/1521470525407498.png   
   
//7. 我们是不是还没有写上一页、下一页、首页以及尾页?

   

      首页   
    上一页   
    下一页   
    尾页  
    http://s1.运维网.com/images/20180319/1521470727984898.png      
//8. 修改$page的初值    , 我们自动获取page的值

   

$page = $_GET['page'];  
    //此时我们会发现竟然出错了 !空?怎么改?

    http://s1.运维网.com/images/20180319/1521470928968873.png
  //我们的初始目的是让$page的初值为 1 ,我们可以这样,加一个条件判断,如果空就为 1,否则就是得到的页数
$page = empty($_GET['page'])? 1 : $_GET['page'];//三目运算  

//9. 我们先把链接给定首页和尾页(简单),再把上一页下一页写上
   
    //首页就是主页面,即page=1
   

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

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



  最后的源代码:





系统主页面



   
   
    首页   
    ">下一页   
页: [1]
查看完整版本: PHP、MYSQLI实现分页(初学者)