2013-05-17 102 views
3

我試圖在codeigniter中創建分頁,我讓它工作,但我有一個小問題。它似乎是加載我的數據庫中的所有條目,而不是我想要的選定條目。Codeigniter count_all分頁

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

我知道發生了什麼是最後一行是凌駕於我以前的陳述。儘管我似乎無法找到解決辦法。我嘗試了一個簡單的sql語句,然後將其返回,但我無法使其工作。

,這是我的發言......

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

一些幫助將非常感謝! :)

回答

7

您還可以使用內置的num_rows()功能...

$query = $this->db->where('type', 'original')->get('story_tbl'); 
return $query->num_rows(); 
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; 
} 
+0

謝謝!你是最棒的! :) – zazvorniki

+3

或者你可以使用'count_all_results()'... –

10

CI已經內置計數方法

count_all_results() 

允許您確定特定活動記錄查詢中的行數。查詢將接受活動記錄限制器例如其中(),or_where(),像(),or_like()等。示例:

http://ellislab.com/codeigniter/user-guide/database/active_record.html

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

謝謝!我其實有這樣的......幾乎是逐字的。不幸的是我沒有爲我工作。它不斷告訴我我無法返回整數。幸運的是,上面的答案解決了我的問題! :) – zazvorniki

2

第一次嘗試這一個。

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

除了這個笨有一個像下面的例自己的功能。

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

或使用此。

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