Thinkphp系统提供有分页功能,使用类 \Think\Page;
普通分页
$article = M("article"); $count = $article->count(); // 查询满足要求的总记录数 $page = new \Think\Page($count,25); // 实例化分页类 传入总记录数和每页显示的记录数(25) $show = $page->show(); // 分页显示输出 // 进行分页数据查询 注意limit方法的参数要使用Page类的属性 $list = $article->limit($page->firstRow.','.$page->listRows)->select(); $this->assign("show",$show); $this->assign("list",$list); $this->display();
注意: 实例化分页类 \Think\Page();
搜索分页
1.使用GET表单提交搜索
$article = M("article"); $title = urlencode($_GET['title']); $map['title'] = array('LIKE',"%{$title}%"); $count = $article->where($map)->count(); $page = new \Think\Page($count,25); $show = $page->show(); $list = $article->where($map)->limit($page->firstRow.','.$page->listRows)->select(); $this->assign("show",$show); $this->assign("list",$list); $this->display();
2.使用POST提交搜索表单
$article = M("article"); $title = urlencode($_REQUEST['title']); $args['title'] = $title; $map['title'] = array('LIKE',"%{$title}%"); $count = $article->where($map)->count(); $page = new \Think\Page($count,25,$args); $show = $page->show(); $list = $article->where($map)->limit($page->firstRow.','.$page->listRows)->select(); $this->assign("show",$show); $this->assign("list",$list); $this->display();
分页样式
我们可以对输出的分页样式进行定制,分页类Page提供了一个setConfig方法来修改默认的一些设置。例如:
$article = M("article"); $title = urlencode($_REQUEST['title']); $args['title'] = $title; $map['title'] = array('LIKE',"%{$title}%"); $count = $article->where($map)->count(); $page = new \Think\Page($count,25,$args); $page->setConfig("first","首页"); $page->setConfig("prev","上一页"); $page->setConfig("next","下一页"); $page->setConfig("last","末页"); //注意last不显示,此项是个bug $page->setConfig("theme","%UP_PAGE% %LINK_PAGE% %DOWN_PAGE%"); //用theme自定义显示哪些内容 $show = $page->show(); $list = $article->where($map)->limit($page->firstRow.','.$page->listRows)->select(); $this->assign("show",$show); $this->assign("list",$list); $this->display();
setConfig方法支持的属性包括:
header:头部描述信息,默认值 “共 %TOTAL_ROW% 条记录”
prev:上一页描述信息,默认值 “<<”
next:下一页描述信息,默认值 “>>”
first:第一页描述信息,默认值 “1...”
last:最后一页描述信息,默认值 “...%TOTAL_PAGE%”
theme :分页主题描述信息,包括了上面所有元素的组合 ,设置该属性可以改变分页的各个单元的显示位置,默认值是 "%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%"
其中,显示位置的对应的关系为:
位置 | 说明 |
---|---|
%FIRST% | 表示第一页的链接显示 |
%UP_PAGE% | 表示上一页的链接显示 |
%LINK_PAGE% | 表示分页的链接显示 |
%DOWN_PAGE% | 表示下一页的链接显示 |
%END% | 表示最后一页的链接显示 |
除了改变显示信息外,你还可以使用样式来定义分页的显示效果。这些样式class包括:first(第一页)、prev(上一页)、next(下一页)、end(最后一页)、num(其他页的数字)、current(当前页)。