相当无趣的问题。给出以下代码:
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 :(得分:0)
它没有在数组中插入值,因此请更改:
$array = $row->group_id;
到
$array[] = $row->group_id;
答案 1 :(得分: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();
然后你可以检查是否有结果,而不是循环遍历所有结果。
答案 2 :(得分:0)
我发现我错过了用户指南中的一个部分,以实现我想要的正确代码应该是:
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';
}
}
感谢回复的人,我希望这有助于其他人犯下愚蠢的错误:)