使用thinkphp分页时,怎么保存查询的条件?

2024-12-04 13:12:47
推荐回答(5个)
回答1:

统计和分页查询都加上相同条件就行了:

$count = M('')->where('条件')->count();

$list= M('')->where('条件')->limit(分页)->select();

附上tp手册的条件查询分页方式:

回答2:

1 分页的时候,都是GET传递,所以,在点击查询后保存查询的条件,直接用GET在地址栏获取,直接输出就行。
2 查询时传入条件,因为分页的时候,也需要到后台查询数据,所以直接用GET方式接收表单查询条件,作为where条件直接查询即可。

回答3:

分页一般都通过GET传递参数,TP分页时一般都会带上GET值,你根据GET值去做查询条件,当前也可以使用POST,但在分页点击把做提交,把相应的值POST到服务端,建议用GET方式。

回答4:

参考下面的栗子

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('删除失败');
  }
 }
}

回答5:

    // 用来获取当前用户的买入订单
    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();
    }