web-dev-qa-db-ja.com

CodeIgniter Active Record-返された行の数を取得

特にCodeIgniterとActive Recordを初めて使用します。通常のSQLでこれをうまく行う方法を知っていますが、学習しようとしています。

テーブルの1つからデータを選択し、CodeIgniters Active Recordクラスを使用して返される行数をカウントするにはどうすればよいですか?

ありがとう、トム。

63
Zim

結果関数をご覧ください here

$this->db->from('yourtable');
[... more active record code ...]
$query = $this->db->get();
$rowcount = $query->num_rows();
120
Residuum

そして、テーブル内のすべての行のカウントを取得したい場合

$table_row_count = $this->db->count_all('table_name');
38
Zack

これはあなたのモデルに行きます:

public function count_news_by_category($cat)
{
    return $this->db
        ->where('category', $cat)
        ->where('is_enabled', 1)
        ->count_all_results('news');
}

現在のプロジェクトの例です。

ベンチマーク によると、このクエリは次の場合よりも高速に動作します。

$this->db->select('*')->from('news')->where(...); 
$q = $this->db->get(); 
return $q->num_rows();
31
Yura Loginov

クエリの行数だけが必要で、実際の行データが必要ない場合は、 count_all_results を使用します

echo $this->db
       ->where('active',1)
       ->count_all_results('table_name');
16
pbarney

ドキュメントの息子を読んでください!

$query->num_rows();
9
ascotan

これは、2つの異なる方法で実行できます。

  1. $this->db->query(); //execute the query
     $query = $this->db->get() // get query result
     $count = $query->num_rows() //get current query record.

  2.  $this->db->query(); //execute the query
      $query = $this->db->get() // get query result
      $count = count($query->results()) 
          or   count($query->row_array())  //get current query record.
3
prash.patil
$this->db->select('count(id) as rows');
$this->db->from('table_name');
$this->db->where('active',1);
$query = $this->db->get();
foreach($query->result() as $r)
{
   return $r->rows;
}
2
Bijendra Ch

これは、条件が影響する行またはデータを探している場合にも非常に便利な機能です

function num_rows($table)
    {   
       return $this->db->affected_rows($table);
    }
2
Nishant Lad

モデルのこのコードセグメント

function getCount($tblName){
    $query = $this->db->get($tblName);
    $rowCount = $query->num_rows();
    return $rowCount;       
}

これは管理者向けです

  public function index() {
    $data['employeeCount']= $this->CMS_model->getCount("employee");
    $this->load->view("hrdept/main",$data);
}

これは表示用です

<div class="count">
  <?php echo $employeeCount; ?>                                                                                            
 </div>

このコードは私のプロジェクトで使用されており、適切に機能しています。

result

1
Lucky
function getCount(){
    return $this->db->get('table_name')->num_rows();
}
0
Sunday Okoi
$sql = "SELECT count(id) as value FROM your_table WHERE your_field = ?";
$your_count = $this->db->query($sql, array($your_field))->row(0)->value;
echo $your_count;
0
John Erck