Codeigniter count_all用于分页

时间:2013-05-17 02:29:41

标签: php codeigniter pagination

我正在尝试在codeigniter中创建分页并且我有它的工作,但我有一个小问题。它似乎正在加载我的数据库中的所有条目,而不是我想要的所选条目。

public function original_count() {
     $this->db->where('type', 'Original');
      return $this->db->count_all("story_tbl");
    }

我知道最近发生的事情是最后一行是否超出我以前的陈述。我似乎无法找到解决办法。我尝试了一个staight sql语句,然后返回它,但我也无法使用它。

这是我的陈述......

SELECT COUNT(*) FROM story_tbl where type = 'Original';

一些帮助非常感谢! :)

4 个答案:

答案 0 :(得分:11)

CI具有内置计数方法

count_all_results()

允许您确定特定Active Record查询中的行数。查询将接受Active Record限制器,例如where(),or_where(),like(),or_like()等。示例:

https://www.codeigniter.com/userguide2/database/active_record.html

$total_count = $this->db->count_all_results('story_tbl', array('type' =>'Original'));

答案 1 :(得分:8)

您还可以使用内置的num_rows()功能...

$query = $this->db->where('type', 'original')->get('story_tbl');
return $query->num_rows();

答案 2 :(得分:3)

首先尝试一下。

$query = $this->db->where('tbl_field', 'value')
         ->get('your_table');
return $query->num_rows();

除此之外,Codeigniter还拥有自己的功能,如下所示。

 $this->db->where('tbl_field', 'value')
             ->get('your_table');
    return $this->db->count_all_results();

或者使用它。

return $this->db->count_all('your_table');

答案 3 :(得分:1)

Where无法使用count_all条件..您可以使用以下方法查找总行数。

public function count_all() {
    $this->db->select ( 'COUNT(*) AS `numrows`' );
    $this->db->where ( array (
            'type' => 'Original'
    ) );
    $query = $this->db->get ( 'story_tbl' );
    return $query->row ()->numrows;
}