多个 Like 子句 CodeIgniter

Mik*_*der 4 php mysql codeigniter

我正在尝试使用多个“喜欢”来查找多列中的匹配项。

PHP & mysql:

$area = $this->session->userdata('area');
if($area == 'inbox'){

   $this->db->where('receiver',$user); 
   $this->db->where('receiver_deleted !=','yes');

   }elseif($area == 'sent'){
   $this->db->where('sender',$user); 
   $this->db->where('sender_deleted !=','yes');
}

$this->db->like('sender',$k);
$this->db->or_like('msg',$k); 


$this->db->from('messages');
$this->db->join('users','users.username = messages.sender','inner');

$this->db->order_by('read','no');
$sql = $this->db->get();

if($sql->num_rows > 0){

 return $sql->result();
}else{

 echo "failed!";
     }
Run Code Online (Sandbox Code Playgroud)

我也试过:

$this->db->like('sender',$k); 
$this->db->like('msg',$k); 
Run Code Online (Sandbox Code Playgroud)

第一个什么都没发生。第二个只执行一个,在这种情况下是第一个。我不能让两者同时工作。

任何帮助将不胜感激,迈克

ni3*_*nki 5

为此,您应该使用带有 where 子句的分组。

$area = $this->session->userdata('area');
if($area == 'inbox'){

   $this->db->where('receiver',$user); 
   $this->db->where('receiver_deleted !=','yes');

   }elseif($area == 'sent'){
   $this->db->where('sender',$user); 
   $this->db->where('sender_deleted !=','yes');
}
$this->db->group_start();  //group start
$this->db->like('sender',$k);
$this->db->or_like('msg',$k); 
$this->db->group_end();  //group ed
Run Code Online (Sandbox Code Playgroud)