2013-11-04 74 views
0

相反noobish問題。考慮下面的代碼:Codeigniter函數數組總是返回否

public function in_group($group) 
    { 
     $session = $this->CI->session->userdata('logged_in'); 
     $query = $this->CI->db->get_where('people_groups', array('people_id' => $session['user_id'])); 
     $array = array(); 
     foreach ($query->result() as $row) 
     { 
      $array = $row->group_id; 

     } 
     if ($array == $group) 

     { 
      return 'YES'; 
     } 
     return 'no'; 

}

結果始終沒有,而事實上,它應該根據數據庫是肯定的。

我想要做的是檢查people_groups表,看看當前用戶是否在請求$group。我研究如何以如下方式使用陣列,但我擔心我做了一些相當不好的事情。

注:$group_id引用了存儲組ID的

回答

0

我descovered,我錯過了用戶指南中的一個部分,以達到我想要的正確的代碼應該是:

public function in_group($group) 
    { 
     $session = $this->CI->session->userdata('logged_in'); 
     $query = $this->CI->db->get_where('people_groups', array('people_id' => $session['user_id'])); 

     foreach ($query->result_array() as $row) 
     { 
      if ($row['group_id'] == $group) 

      { 
       return 'YES'; 
      } 
      return 'no'; 

     } 
    } 

謝謝誰回答的人,我希望這可以幫助其他人做愚蠢的錯誤:)

0

它不插入值到數組表中的列,所以更改此:

$array = $row->group_id; 

$array[] = $row->group_id; 
0

你應該改變你的查詢來選擇哪裏有該用戶和組ID的行,如下所示:

$this->CI->db->select('*'); 
$this->CI->db->from('people_groups'); 
$this->CI->db->where('people_id', $session['user_id']); 
$this->CI->db->where('group_id', $group); 
$query = $this->CI->db->get(); 

然後你可以檢查是否有結果,而不是遍歷所有結果。