Php 带有两个数组的Where的Codeigniter查询

Php 带有两个数组的Where的Codeigniter查询,php,codeigniter,Php,Codeigniter,希望你有好的一天 我正在修改一些登录函数的代码。它在Codeigniter 3中。所以用户名也可以用电子邮件填写。 如何使用Codeigniter编写此代码 以下是我的控制器的一些代码: $data = array('username' => $this->input->post('username', TRUE), 'password' => md5($this->input->post('password', TRUE))

希望你有好的一天

我正在修改一些登录函数的代码。它在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
$data1

谢谢

您可以在一行查询中完成此操作

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();
}

希望它能帮助您

您可以在一行查询中完成此操作

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;
}

希望这将对您有所帮助。

在您的控制器中,只需输入以下代码

$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;
}

希望这对您有所帮助。

根据codeigniter手册,您可以使用以下方法编写查询:, 这里可以使用where和/或_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;

}
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;

}
方法2

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;

}
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;

}

根据codeigniter手册,您可以使用以下方法编写查询:, 这里可以使用where和/或_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;

}
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;

}
方法2

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;

}
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;

}
试试这个:-

$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;
试试这个:-

$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;

谢谢,代码已编译,但当我试图查看查询时,它显示了
从'daftar_keanggotaan'中选择*,其中'username'='admin'
**和**`'password'='code'
**或**
'email\u rumah'='admin'
**逻辑是和或,而我希望逻辑是和或和。有什么想法吗?谢谢,对不起。我试图解释的是,cek_用户($data,$data1)中的your代码给出了查询逻辑和或。AND来自$data,第一个OR来自或位于
或_,其中
,第二个OR来自$data1。而我想要的逻辑是和来自$data或来自
或_where
和第二个和来自$data1。谢谢。请写下您需要的查询,从
mytable
中选择*,其中
用户名
='something'和
密码
='something'或
电子邮件
='something'和
密码
='something
$data1`anda
$data
应为和。许多人仍然给我查询和(来自
$data
中的变量)或(来自或_WHERE)和或(来自
$data1
中的变量)。虽然它应该是,但是
$data1
中的两个变量应该是AND,因此查询将是AND或AND。我认为,问题来自
或\u WHERE
。不管怎样,谢谢你的帮助,我以后会写另一个代码来修复它。谢谢,代码已经编译,但是当我试图查看查询时,它显示了
从'daftar\u keanggotaan'中选择*,其中'username'='admin'
**和**`'password'='code'
**或**
'email\u rumah'='admin'
**或**
'password'='code'`逻辑是AND或OR,而我希望逻辑是AND或AND。有什么想法吗?谢谢,对不起。我试图解释的是,cek_用户($data,$data1)中的your代码给出了查询逻辑和或。AND来自$data,第一个OR来自或位于
或_,其中
,第二个OR来自$data1。而我想要的逻辑是和来自$data或来自
或_where
和第二个和来自$data1。谢谢。请写下您需要的查询,从
mytable
中选择*,其中
用户名
='something'和
密码
='something'或
电子邮件
='something'和
密码
='something
$data1`anda
$data
应为和。许多人仍然给我查询和(来自
$data
中的变量)或(来自或_WHERE)和或(来自
$data1
中的变量)。虽然它应该是,但是
$data1
中的两个变量应该是AND,因此查询将是AND或AND。我认为,问题来自
或\u WHERE
。不管怎样,谢谢你的帮助,我以后会写另一个代码来修复它。你的代码运行得很好。谢谢你,是的,我知道,我们应该一个接一个地将数组中的变量与逻辑(如OR AND)进行比较,但我想知道是否有更简单的解决方案,因为我已经有了2个数组,其中包含了数据,只是“逻辑”而已。喜欢或正在使用
$data
$data1
。虽然第二种方法仍然给了我AND或OR逻辑,但您的代码运行得很好。谢谢你,是的,我知道,我们应该一个接一个地将数组中的变量与逻辑(如OR AND)进行比较,但我想知道是否有更简单的解决方案,因为我已经有了2个数组,其中包含了数据,只是“逻辑”而已。喜欢或正在使用
$data
$data1
。而第二种方法仍然给我和或逻辑。