想要实现数据分页,可以使用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条数据了吧。
所以大家要注意不要粗心写错代码哦