4

我正在尝试在 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

4 回答 4

12

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'));
于 2013-05-17T03:27:25.373 回答
9

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

$query = $this->db->where('type', 'original')->get('story_tbl');
return $query->num_rows();
于 2013-05-17T02:53:08.027 回答
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');
于 2015-02-25T07:21:12.103 回答
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;
}
于 2013-05-17T02:45:22.973 回答