2016-09-15 105 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