Codeigniter分页:运行查询两次?

我正在使用codeigniter和分页类.这是一个基本问题,但我需要确保我不会错过任何东西.为了获得分配结果所需的配置项,从
MySQL数据库获取它们,基本上必须运行两次查询,是吗?

换句话说,您必须先运行查询以确定分页前的记录总数.所以我这样做:

执行此查询以获取结果数

$this->db->where('something', $something);
$query = $this->db->get('the_table_name');
$num_rows = $query->num_rows();

然后我将不得不再次使用限制和偏移来获得结果.就像是:

$this->db->where('something', $something);
$this->db->limit($limit, $offset);
$query = $this->db->get('the_table_name');
if($query->num_rows()){

    foreach($query->result_array() as $row){

         ## get the results here
    }
}

我只是想知道我是否真的这样做,因为查询总是需要运行两次?我正在使用的查询比上面显示的要复杂得多.

最佳答案 不幸的是,为了分页,你必须知道你分成多少个元素.

如果元素的计算成本太高,您可以始终将结果缓存为元素总数.

点赞