代码点火器查询与 Where 与两个数组



希望你有美好的一天。

我正在修改登录功能的一些代码。它在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;
}

我想问的是,如何在$dataanda$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;

相关内容

  • 没有找到相关文章

最新更新