4

codeigniter でページネーションを作成しようとしていますが、機能していますが、小さな問題があります。データベース内のすべてのエントリをロードしているようで、選択したエントリはロードしていないようです。

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';

いくつかの助けをいただければ幸いです!:)

4

4 に答える 4

12

CIにはcountメソッドが組み込まれています

count_all_results()

特定の Active Record クエリの行数を決定できます。クエリは、where()、or_where()、like()、or_like() などの Active Record リストリクタを受け入れます。例:

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 に答える
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

Wherecount_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 に答える