想要实现数据分页,可以使用thinkphp自带的分页函数Page(); 在thinkphp3.2.3中要实现分页,和3.1不同的是3.2.3中把 page=newPage()改为了 page = new \Think\Page($count,5); 下面是实现分页的代码。特别简单。
下面写一个控制器TestController为例,表为User表
<?php namespace Home\Controller; use Think\Controller; class TestController extends Controller{ Public function index(){ $model=M('User'); $count=$model->count(); $page=new\Think\Page($count,5);//一页显示五条数据 $show=$page->show();//把$page显示出来,其实就是一段前端代码 $list=$model->limit($page->firstRow,$page->listRows)->select();//表示从第几条记录开始显示,每页显示几条 /***打印$page->firstRow和$->page->listRows可以了解一下是什么,看图二**/ $this->assign('list',$list); $this->assign('show',$show); } }代码解析:
echo $show;//见图1 echo "<br>".$page->firstRow."----".$page->listRows;//见图2,3,4图1
模板(前端)代码
<div> {$show} </div>(其实不是。。。。)是提醒,在我第一次写这段代码的时候,由于粗心,造成了每一页的数据都有重复。。。,大家不要犯啊啊啊。
why? 后来仔细检查了自己的代码,
发现原来自己的listRows少写了一个s,致使会有重复数据出现,而且,我只让显示一条数据,但是第二页出现了一条,id却是1,和第一页一样,第三页出现了两条数据。。。 所以我才充分理解了listRows的意思,是每页显示的记录数,firstRow+listRows就等于下一页的第一条数据的id啊,而listRow就是当前页-1条数据了吧。
所以大家要注意不要粗心写错代码哦