$User = M('User'); // 实例化User对象
$count = $User->where('status=1')->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$show = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);// 赋值数据集
$this->assign('page',$show);// 赋值分页输出
$this->display(); // 输出模板
其中我对第二句查询满足条件的总记录数还有点迷惑
$count = $User -> count();如果这样写的话不就是查询表中所有数据的总记录数,这样理解有问题么?这样写在页面是显示不出来的!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
满足要求?要求是什么?要求是 where('status=1'),当然也就是数据表中 status=1 的记录数并不是你说的要查询表中所有数据的总记录数。
理解没问题,主要去除所有符合条件的数据的数量就可以
不管是
status=1还是sex=mancount不带条件是全部数据,你的不显示是有多种原因,需要仔细排查,多看一下源码,如图部分
分页其实很简单,一个是要知道2个参数
总记录条数,每页的记录条数。比方说78条数据,每页10条,78/10取整,才知道要分8页
limit($Page->firstRow.','.$Page->listRows)这个其实是通过当前页码去换算,要把第几条到第几条的数据select出来。
比如说,按照刚才的78,第八页,那我select语句其实就是 limit 70 10 , 从第70条数据开始,查询10条数据
在配置文件中开启页面调试
查看下sql语句是否有 select count(*)... 语句,下断点,单步调试,看看第二步有没有正确获取到$count