Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在codeigniter中使用带有Like的where子句_Php_Mysql_Codeigniter - Fatal编程技术网

Php 在codeigniter中使用带有Like的where子句

Php 在codeigniter中使用带有Like的where子句,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在做一个项目。我正在我的系统中实现搜索功能 我必须根据当前使用登录名显示两个表中的搜索记录。我尝试了以下代码: function searchActivity($limit,$offset,$keyword1,$keyword2,$recruiter_id) { $q=$this->db->select('*')->from('tbl_activity')->limit($limit,$offset);

我正在做一个项目。我正在我的系统中实现搜索功能

我必须根据当前使用登录名显示两个表中的搜索记录。我尝试了以下代码:

    function searchActivity($limit,$offset,$keyword1,$keyword2,$recruiter_id)
    {   
        $q=$this->db->select('*')->from('tbl_activity')->limit($limit,$offset);     
        $this->db->join('tbl_job', 'tbl_job.job_id = tbl_activity.job_id_fk', 'left outer');
        $this->db->order_by("activity_id", "ASC");          
        $this->db->like('job_title',$keyword1,'both');
        $this->db->or_like('job_title',$keyword2,'both');       
        $this->db->or_like('activity_subject',$keyword1,'both');
        $this->db->or_like('activity_subject',$keyword2,'both');        
        $this->db->or_like('activity_details',$keyword1,'both');
        $this->db->or_like('activity_details',$keyword2,'both');        
        $this->db->where('tbl_activity.recruiter_id_fk',$recruiter_id);             
        $ret['rows']=$q->get()->result();
return $ret;
}
我想根据当前用户id显示搜索结果,该id当前存储在$recruiter中


提前感谢。

您必须在
()
中对所有
类似的
条件进行分组,然后添加,所有类似条件见下文

function searchActivity($limit,$offset,$keyword1,$keyword2,$recruiter_id)
{    

   $query="SELECT * FROM tbl_activity 
    left outer tbl_job ON (tbl_job.job_id = tbl_activity.job_id_fk)
    WHERE tbl_activity.recruiter_id_fk=".$recruiter_id."  AND
    (job_title LIKE '%".$keyword1."%' OR job_title LIKE '%".$keyword2."%' OR
    activity_subject LIKE '%".$keyword1."%' OR activity_subject LIKE '%".$keyword2."%' OR
    activity_details LIKE '%".$keyword1."%' OR activity_detailsLIKE '%".$keyword2."%'
    )
    ORDER BY activity_id ASC LIMIT $limit,$offset";
   $ret['rows']= $this->db->query($query)->result();

 return $ret;
}
您的
WHERE
条件正在影响
招聘人员\u id\u fk
但您有
like
条件,其级别为
SELECT*,其中id=1或关键字类“%test%”或关键字类“%test%”
它将给出与id匹配的结果,以及与关键字匹配的结果(如果需要)结果与关键字匹配但id相同,然后您必须将
条件与父项
操作分组,如

从id=1的表中选择*(关键字如“%test%”或关键字1如“%test%”)

希望它有意义

试试这个:

function select_where_in($field,$value,$table)
    {
        $this->db->select("*");
        $this->db->where_in($field, $value);
        $get_data=$this->db->get($table);
        return $get_data->result();
    }

当您尝试该代码时,出现了什么问题?它基于我在查询中传递的关键字返回记录(基于关键字返回所有其他用户记录,而不是基于招聘人员id)。它必须显示与特定用户相关的搜索结果。