CodeIgniter Active Record - 获取返回的行数并获取总和
Posted
技术标签:
【中文标题】CodeIgniter Active Record - 获取返回的行数并获取总和【英文标题】:CodeIgniter Active Record - Get number of returned rows and get the sum 【发布时间】:2014-07-21 11:48:59 【问题描述】:我是 CodeIgniter 和 Active Record 的新手
如何获取返回的行数并获得两个返回表行数的总和。
我已经有这样的功能来获取行数
控制器
function newsletter ()
$data = array();
$data['subscriber_count'] =$this->mod_contactus->count_subscriber();
$data['user_count'] =$this->mod_contactus->count_reg_users();
$this->load->view('admin/admin_newsletter',$data);
型号
public function count_subscriber()
return $this->db->get("tbl_subscribers")->num_rows();
public function count_reg_users()
return $this->db->get("tbl_customer_registration")->num_rows();
【问题讨论】:
你试过 $this->db->count_all_results();或 $this->db->count_all(); ?参考:ellislab.com/codeigniter/user-guide/database/active_record.html 用简单的加法求和有什么问题?您已经有了行数。 @WesleyMurch 是的,你是对的。 【参考方案1】:这没什么大不了的。你可以做这样的事情。协助 php array_sum
.这是php manual to array sum 你已经有了行数
在你的控制器中
function newsletter ()
$data = array();
$data['subscriber_count'] =$this->mod_contactus->count_subscriber();
$data['user_count'] =$this->mod_contactus->count_reg_users();
$data['count_both'] = array_sum($data);
$this->load->view('admin/admin_newsletter',$data);
在你看来echo $count_both ;
【讨论】:
【参考方案2】:如果这真的是您唯一的目标,只需执行一个查询:
$query = $this->db->query("
select
( select count(*) from table_1 ) +
( select count(*) from table_2 )
as total_num_row
from table_1
");
# $query->num_rows()
【讨论】:
这就是我们所说的 ActiveRecord ;) 您应该更新之前的答案,而不是删除然后发布新答案以上是关于CodeIgniter Active Record - 获取返回的行数并获取总和的主要内容,如果未能解决你的问题,请参考以下文章
使用 CodeIgniter Active Record 语句
CodeIgniter Active Record 与常规查询
CodeIgniter Active Record 中的 SQL 注释?