php - 多个 Like 子句 CodeIgniter

标签 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!";
     }

我也试过:

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

第一个没有任何反应。第二个只有一个被执行,在这种情况下是第一个。我无法让两者同时工作。

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

最佳答案

为此,您应该使用带 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

关于php - 多个 Like 子句 CodeIgniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23254305/

相关文章:

PHP - 安全更改密码表单/方法

php - Ajax 请求无响应使用 codeigniter

php - 通过在 codeigniter 上迁移向表添加新字段?

php - CodeIgniter Active Record集方法与MySQL函数SUBSTRING_INDEX

php - WordPress 博客分页不起作用

php - fatal error : require_once(): Failed opening required 'C:\core/vendor/autoload.php' (include_path ='C:\xampp\php\PEAR' ) in C:\Users\zu

php - 将未设置的变量传递给函数

php - 如何在 CodeIgniter 中编写给定的查询

mysql - 更好的MySql语句

php - mysqli 插入查询的结果不稳定