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)
第一个什么都没发生。第二个只执行一个,在这种情况下是第一个。我不能让两者同时工作。
任何帮助将不胜感激,迈克
为此,您应该使用带有 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)