lxylxy888666 发表于 2012-12-18 14:21:44

CI框架分页查询时同时查询数据和总数的方法

本帖最后由 lxylxy888666 于 2012-12-18 14:26 编辑

要写个demo,想同时查询数据和分页数
用了下clone



    /**
   * 查询数据
   * @param string $md5
   * @param int $offset 起始位
   * @param int $limit
   *
   * @return array
   */
    function get_limit($md5, $offset, $limit=5)
    {
      //起始位置处理
      $offset = (($offset>0 ? $offset : 1) - 1) * $limit;
      
      //条件初始化
      $where = array('state'=>0);
      //条件
      if( $md5 ) {
            $where['md5'] = $md5;
      }
      
      $this->db->where( $where );

      //在order、group或limit前查询总数
      $db = clone($this->db);
      $total = $this->db->count_all_results('class');
      echo $this->db->last_query();
      echo '<hr/>';
      
      $this->db = $db;
      $this->db->order_by('id desc');
      $this->db->limit($limit, $offset);
      $query = $this->db->get('class');
      
      $data = $query->result_array();
      
      //sql调试方法
      echo $this->db->last_query();

      //return 数据和总数
      return array('data'=>$data, 'total'=>$total);
    }



show:
SELECT COUNT(*) AS numrows FROM classWHERE state =0AND md5 ='111'

SELECT * FROM class WHERE state =0 AND md5 ='111'ORDER BY id desc LIMIT 5
看下是你想要的么。

天线得得B 发表于 2013-2-1 21:27:32

好东西,支持一下

MRNCYYSG 发表于 2015-9-7 11:37:34

嗯,帮大忙啦,3Q

longjianghu 发表于 2015-9-7 14:42:34

你这个东西太简单了,我建议你们再次封装一下,更好用~~

aszx0413 发表于 2015-9-7 16:07:03

是最好的方案吗,有没有其他同学分享一下更好的方案

aszx0413 发表于 2015-9-15 14:49:35

longjianghu 发表于 2015-9-7 14:42
你这个东西太简单了,我建议你们再次封装一下,更好用~~

有好的案例分享一下吗

yuyu500 发表于 2015-12-11 01:02:55

这个应该是比较好的方案了:P

sigslab 发表于 2017-9-18 20:38:46

好奇的是如果是多表关联查询的话应该怎么处理?
页: [1]
查看完整版本: CI框架分页查询时同时查询数据和总数的方法