我正在使用get_where子句为我的登录获取数据库中的值,如此
控制器:
public function submit_login(){
if($this->input->post('submit')){
$email= $this->input->post('email');
$password= $this->input->post('password');
$this->load->model('user_model');
$result= $this->user_model->login($email, $password);
print_r($result);
}
}
模型
public function login($email, $password){
$query=$this->db->get_where('user',array('email'=>$email,'password'=>$password));
if($query->num_rows()>0){
return $query->result();
}
return false ;
}
返回followint数组
数组([0] => stdClass对象([id] => 2 [名称] => Sikander [电子邮件] => sikander@test.com [密码] =>密码[mobile_number] => 1234 [role] =>卖家[分] => 0))
现在我尝试循环这个并将id分配给sesion但是foreach似乎不适用于此,不知道为什么请求帮助
答案 0 :(得分:2)
应用程序应该在物质模型中只返回一个结果。
你在那里。如您所见,您有一个数组,其中一个元素[0]
是一个对象。遵循OOP方法,您可以通过以下方式获得这些属性(值):
$result[0]->id;
或者,由于预期数据库中有一行,因此在模型中您可以返回:
return $query->row();
并通过
进行检查$result->id
如果数组语法更方便您进行迭代,则可以使用
$query->result_array()
或
$query->row_array()
方法。 docs中有很多有用的例子。
答案 1 :(得分:0)
public function login($email, $password){
$query=$this->db->get_where('user',array('email'=>$email,'password'=>$password));
if($query->num_rows()>0){
return $query->result();
}
return false ;
}
在你的代码中返回$ query-> result();在
中给出带有对象的数组foreach ($users as $user) {
echo $user->email; // what ever your table fields
}
如果您只需要单个值来形成查询,那么您需要 return $ query-> result();替换为
return $query->row(); // this return as object or
return $query->row_array();// this return as single array