CodeIgniter Active Record – 获取返回的行数

我对CodeIgniter和Active Record非常陌生,我知道如何在普通的SQL中做到这一点,但我正在努力学习。

如何从我的表中select一些数据,然后计算使用CodeIgniter Active Record类返回的行数?

谢谢,汤姆。

看看这里的结果函数:

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

而且,如果你只是想得到一个表中所有行的计数

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

这给你模型:

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

这是我目前项目的一个例子。

根据基准testing,这个查询的运行速度比以下操作更快:

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

如果您只需要查询中的行数并且不需要实际的行数据,请使用count_all_results

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

刚刚阅读文档的儿子!

 $query->num_rows(); 

你可以用两种不同的方式来做到这一点:

  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. 

如果您正在查找条件受到影响的行或数据,这也是非常有用的function

 function num_rows($table) { return $this->db->affected_rows($table); } 
 $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; } 
 function getCount(){ return $this->db->get('table_name')->num_rows(); } 
Interesting Posts