希望你有美好的一天。
我正在修改登录功能的一些代码。它在Codeigniter 3中。因此,用户名也可以填充电子邮件。 如何使用 Codeigniter 编写此代码?
这是我的控制器的一些代码:
$data = array('username' => $this->input->post('username', TRUE),
'password' => md5($this->input->post('password', TRUE))
);
$data1 = array('email' => $this->input->post('username', TRUE),
'password' => md5($this->input->post('password', TRUE))
);
$this->load->model('m_login');
$result= $this->m_login->cek_user($data, $data1);
if ($result->num_rows() == 1) {
some code......
这是我模型中cek_user()
的功能:
public function cek_user($data, $data1) {
$query = $this->db->get_where('mytable', $data||$data1);
return $query;
}
我想问的是,如何在$data
anda$data1
中对数组使用 OR 条件 谢谢
根据代码点火器手册,您可以使用以下方法编写查询, 在这里,您可以使用 where 和 or_where 函数。您可以在下面的链接中找到更多信息。
链接
方法 1
public function cek_user($data, $data1) {
$where = "(name='$data[name]' AND password ='$data[password]') OR (email='$data1[email]' AND password ='$data[password]')";
$this->db->where($where);
$query = $this->db->get('my_table');
return $query;
}
方法 2
public function cek_user($data, $data1) {
$this->db->where($data);
$this->db->or_where($data1);
$query = $this->db->get('my_table');
return $query;
$query = $this->db->get_where('mytable ', $data||$data1);
return $query;
}
您可以在一行查询中执行此操作
public function cek_user($data, $data1) {
$this->db->where($data); $this->dB->or_where($data1);
$query = $this->db->get('mytable');
return $query->result();
}
或者你的函数应该像这样工作
public function cek_user($data, $data1) {
$query = $this->db->get_where('mytable', $data,$data1);
return $query->result();
}
希望对您有所帮助
在你的控制器中,只需输入以下代码
$this->load->model('m_login');
$result= $this->m_login->cek_user($this->input->post());
if (!empty($result)) {
//Do Stuff
}
在您的模型中
public function cek_user($postData) {
$this->db->where('username', $postData['username']);
$this->db->or_where('email', $postData['email']);
$this->db->where('password', md5($postData['password']));
$query = $this->db->get('mytable')->result();
return $query;
}
希望这对您有所帮助。
试试这个:-
$username = $this->input->post('username', TRUE);
$password = $this->input->post('password', TRUE);
$where = "(`username`='$username' AND `password`='$password' or `email`='$username' AND `password`='$password')";
$this->db->where($where);
$query = $this->db->get('table');
return $query;