CodeIgniter Active Record - 获取返回的行数

时间:2009-08-03 14:49:17

标签: activerecord codeigniter

我对CodeIgniter和Active Record非常陌生,我知道如何在普通SQL中做得很好,但我正在努力学习。

如何从我的某个表中选择一些数据,然后使用CodeIgniters Active Record类计算返回的行数?

谢谢, 汤姆。

11 个答案:

答案 0 :(得分:119)

查看结果函数here

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

答案 1 :(得分:38)

AND,如果您只想获取表中所有行的计数

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

答案 2 :(得分:31)

这适用于你的模型:

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

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

根据benchmarking,此查询比您执行以下操作的速度更快:

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

答案 3 :(得分:16)

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

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

答案 4 :(得分:9)

只需要阅读文档的儿子!

$query->num_rows();

答案 5 :(得分:3)

您可以通过两种不同的方式执行此操作:

  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.

答案 6 :(得分:2)

如果您要查找受条件影响的行或数据

,这也是一个非常有用的功能
function num_rows($table)
    {   
       return $this->db->affected_rows($table);
    }

答案 7 :(得分:2)

$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;
}

答案 8 :(得分:1)

此代码段适用于您的模型

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

答案 9 :(得分:0)

function getCount(){
    return $this->db->get('table_name')->num_rows();
}

答案 10 :(得分:0)

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