统计和分页查询都加上相同条件就行了:
$count = M('')->where('条件')->count();
$list= M('')->where('条件')->limit(分页)->select();
附上tp手册的条件查询分页方式:
1 分页的时候,都是GET传递,所以,在点击查询后保存查询的条件,直接用GET在地址栏获取,直接输出就行。
2 查询时传入条件,因为分页的时候,也需要到后台查询数据,所以直接用GET方式接收表单查询条件,作为where条件直接查询即可。
分页一般都通过GET传递参数,TP分页时一般都会带上GET值,你根据GET值去做查询条件,当前也可以使用POST,但在分页点击把做提交,把相应的值POST到服务端,建议用GET方式。
参考下面的栗子
class MsgManageAction extends CommonAction {
public function index(){
import('ORG.Util.Page');
//import调用的是message/ThinkPHP框架目录下的扩展包Extend/Library/ORG/Util/中的Page.class.php类文件
$count = M('board')->count();
//调用board库,取出所有数据条数
$page = new Page($count ,10);
//实例化Page类,其中第一个参数为显示条数的总数,每次取出十条,也就是下面$page->listRows的值
$limit = $page->firstRow . ',' . $page->listRows;
//$page->firstRow为查找的起始条数,默认为0,如果$page->listRows为10,那么第2页的$page->firstRow就为10,以此类推
$board = M('board')->order('time DESC')->limit($limit)->select();
//注意,这里较之前的版本添加了->limit($limit)
$this->board = $board;
$this->page = $page->show();
//将$page->show()通过show方法解析$page内容显示并赋值给模板变量,供模板调用
$this->display();
}
Public function delete(){
$id = I('id','','intval');
if(M('board')->delete($id)){
$this->success('删除成功',U('index'));
}else{
$this->error('删除失败');
}
}
}
// 用来获取当前用户的买入订单
public function TradingList($p = null) {
$p = intval($p) ? intval($p) : 1;
$pageSize = 15;
$offset = ($p - 1) * $pageSize;
$db = M('rebate_trading');
$TradingList = $db->where(array('userid' => XAAKE))->order('time')->limit($offset, $pageSize)->select();
$count = count($db->where(array('userid' => XAAKE))->select());
$page = new \Think\Page($count, $pageSize);
$page = $page->show();
$this->assign('page', $page);
$this->assign('TradingList', $TradingList);
$this->pagetitle = '已买入订单';
$this->display();
}
上面是没有传递查询参数的
如果 你要传递查询参数的话,请看下述代码
// 用来获取搜索字段为field的,当前用户的买入订单
public function TradingList($field = null,$p = null) {
$field ? $where['field'] = array('eq',$field) : '';
$where['userid'] = array('eq',XAAKE);
$p = intval($p) ? intval($p) : 1;
$pageSize = 15;
$offset = ($p - 1) * $pageSize;
$db = M('rebate_trading');
$TradingList = $db->where($where)->order('time')->limit($offset, $pageSize)->select();
$count = count($db->where($where)->select());
$page = new \Think\Page($count, $pageSize);
$page = $page->show();
$this->assign('page', $page);
$this->assign('TradingList', $TradingList);
$this->pagetitle = '已买入订单';
$this->display();
}