1

我正在尝试从 mysql 数据库中的表中选择用户的详细信息,但它不起作用。这是我模型中的代码:-

public function getuserdetails()
{
        $user_email = $this->input->post('email');
        $query_userdetails = $this->db->query("SELECT * 
                                               FROM users WHERE email = '$user_email' ");

        return $query_userdetails->result_array();
}

这是行不通的。但是,如果我将实际的电子邮件 ID 放在查询中而不是 $user_email 它可以工作但不能正常工作,即如果我使用:-

$query_userdetails = $this->db->query("SELECT * FROM users WHERE 
                                       email = 'myemail@gmail.com' ");

在这种情况下,它返回一个结果。我接受结果的控制器代码是:-

$data['details'] = $this->model_userdetails->getuserdetails();

但问题是,当我在视图中访问 $details 时:-

echo $details['name']."<br />";

它无法识别“名称”。name 是数据库中存储用户名称的字段。但是,如果我尝试在 foreach 循环中检索它,它正在工作:-

foreach($details as $udetails)
{
     echo $udetails['name']."<br />";
}
4

6 回答 6

1

根据 codeigniter 建议运行查询

$query_userdetails = $this->db->query("SELECT * FROM users WHERE email = ?", array($user_email));

http://ellislab.com/codeigniter/user-guide/database/queries.html搜索查询绑定

于 2013-02-23T06:34:20.130 回答
0

我已经解决了只有 foreach 循环可以工作的部分。

如果我们使用 row_array 而不是返回 result_array() ,那么对于显示的 foreach 约束就会消失。

现在我想从电子邮件为 $user_email 的数据库中选择名称

于 2013-02-23T06:44:11.973 回答
0

我会尝试:

$query_userdetails = $this->db->query("SELECT * FROM users WHERE email = '". $user_email ."'");
于 2013-02-23T06:12:10.837 回答
0

你必须这样写

public function getuserdetails()
{
    $user_email = $this->input->post('email');
    $this->db->where('email', $user_email)
             ->get('users')
             ->result_array();
}

在这之后,鉴于,你必须这样写

foreach($details as $udetails)
{
     echo $udetails['name']."<br />";
}
于 2013-02-23T09:26:28.583 回答
0

你可以这样尝试:

[控制器]

$data = array();
$data['udetails'] = $this->UserModel->getuserdetails();
$this->load->view('welcome_message',$data);

[模型]

public function getuserdetails() {
    $user_email = 'webmaster';
    $userdetails = $this->db->query("SELECT * FROM users WHERE umail = '$user_email' ");
    return $userdetails->result();
}   

[看法]

<?php 
 foreach($udetails as $row) 
 {
    echo($row->uname.'<br/>');
    echo($row->uname);
 }
?>
于 2016-05-18T05:58:42.813 回答
0

请试试这个,它会帮助你。 模型

 public function getuserdetails()
    {
        $user_email = $this->input->post('email');
        $this->db->select("*");
        $this->db->from('users');
        $this->db->where('email',$user_email);
        $query = $this->db->get();
        $result= $query->result();
    }

控制器

$data['details'] = $this->model_userdetails->getuserdetails();

看法

foreach($details as $detail)
{   
   echo $detail->name;
   echo $detail->email;
}
于 2017-01-08T13:53:56.520 回答