嗨,这段代码工作正常......出于某种原因,从一天到另一天开始失败
模型功能
$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
答案 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_id
,fullname
,rut
但在Controller中,您可以访问tipo_user
,fullname
,rut
答案 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