2016-09-15 107 views
0
我使用我的模型这种方法来获得从我的数据库的统计结果

计数结果数组字符串转换错误笨

function members($group_id) 
{ 
    $this->db->where('group_id',$group_id); 
    $query = $this->db->query('SELECT COUNT(group_id) FROM member');  
    return $query; 
} 

而且在我的控制器有这样的方法:

function total_members() 
    { 
     $group_id = $this->input->post('group_id'); 
     $this->load->model('Member_model'); 
     $members = $this->Member_model->members($group_id); 
     echo $members; 
    } 

而且我得到这个奇怪的错误,说:

严重性:4096 消息:Object类CI_DB_mysqli_result的不能被转换成字符串 文件名:控制器/ Payment.php

+0

在控制器添加'的print_r($会员)'和首先 –

回答

1

尝试此

模型

function members($group_id) { 
    return $this->db->get_where('member', array('group_id' => $group_id))->num_rows(); 
} 

控制器

function total_members() { 
    $group_id = $this->input->post('group_id'); 
    $this->load->model('member_model'); 
    $members = $this->member_model->members($group_id); 
    print_r($members); 
} 

在笨有num_rows()计数行。欲了解更多信息,请查阅documentation

+0

的检查输出,将工作,但查询将首先返回所有行。通过在查询中使用sql函数COUNT,只有一行(在这种情况下)将被返回。资源密集程度要低得多,可能要快得多。 – DFriend

1

您需要返回需要另一个调用的结果集。在这种情况下,我建议row()。尝试这些修改的功能。

function members($group_id) 
{ 
    $this->db->where('group_id', $group_id); 
    $query = $this->db->query('SELECT COUNT(group_id) as count FROM member'); 
    return $query->row(); 
} 

function total_members() 
{ 
    $group_id = $this->input->post('group_id'); 
    $this->load->model('Member_model'); 
    $members = $this->Member_model->members($group_id); 
    if(isset($members)) 
    { 
     echo $members->count; 
    } 
} 

了解不同种的结果集here