我对CodeIgniter和Active Record非常陌生,我知道如何在普通SQL中做得很好,但我正在努力学习。
如何从我的某个表中选择一些数据,然后使用CodeIgniters Active Record类计算返回的行数?
谢谢, 汤姆。
答案 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>
此代码已在我的项目中使用,并且工作正常。
答案 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;