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 - 获取返回的行数并获取总和的主要内容,如果未能解决你的问题,请参考以下文章