未定义的索引:Codeigniter

时间:2016-02-15 17:34:46

标签: php codeigniter

嗨,这段代码工作正常......出于某种原因,从一天到另一天开始失败

模型功能

$this->db->where('my Condition');
$this->db->set('count','count+2',FALSE);//SET COUNT WITH COUNT+2
$this->db->set('name','gautam');
$this->db->update('my Table');

控制器

        function tipo_user($param)
    {

        $query = $this->db->query('select * from tipo_user where user_id = "'.$param.'"');

    if ($query->num_rows() > 0)
    {   
        foreach ($query->result() as $row)
        {
            $sess['group_id'] = $row->group_id;
            $sess['fullname'] = $row->fullname; 
            $sess['rut'] = $row->rut;       

        }
    }
    return $sess;

    }

如果我打印var $ sesion,结果是

数组([group_id] => 1 [全名] =>管理员[rut] =>)

错误消息是

遇到PHP错误 严重性:注意 消息:未定义的索引:tipo_user 文件名:controllers / sesion.php 行号:104

3 个答案:

答案 0 :(得分:1)

试试这个

在控制器中

$this->load->model('vista_tipo_user');

$user_id = $this->bitauth->user_id;
if (empty($user_id)) {
    echo "User ID is empty";
}
else{
    $sesion  = $this->vista_tipo_user->tipo_user();

    if ($sesion == false) {
        echo "No data";
    }
    else{
        $session_data = array(
            'user_type' => $sesion[0]['tipo_user'],
            'fullname' => $sesion[0]['fullname'],
            'rut' => $sesion[0]['rut']
        );

        print_r($session_data);
    }
}

在模型中

function tipo_user($param)
{

    $query = $this->db->query("SELECT * FROM tipo_user WHERE user_id = '$param' ");
    $result = $query->result_array();

    $count = count($result);

    if (empty($count)) {
        return false;
    }
    else{
        // print_r($result); # check this first
        return $result
    }
}

在模型中您有group_idfullnamerut

但在Controller中,您可以访问tipo_userfullnamerut

答案 1 :(得分:1)

原因是您对数组tipo_user使用了错误的键$sesion。如你所说,你的输出是:

Array ( [group_id] => 1 [fullname] => Administrator [rut] => )

因此没有名称为tipo_user的密钥。我认为你需要group_id

答案 2 :(得分:1)

在你的模型方法中,在foreach次迭代中,你没有推动数组,而是每次迭代都要覆盖你的数组数据,这就是为什么你可能只以最后一行结束。你需要这样做:

foreach ($query->result() as $row)
{
    $sess[] = $row;
}
return $sess;

但你真正应该做的是:

return $query->result();

请点击此处了解详情: Generating Query Results in Codeigniter 3