我正在构建一个具有多个选项的搜索表单。这个想法是寻找具有某些特征的人,例如职业、上一份公司工作的名称、多年的经验等。
在表格的第一部分,您可以输入您希望候选人从事的职业,在第二部分,您可以输入一个或多个公司名称。我想要的是我的查询看起来像这样:
SELECT *
FROM work_experience
WHERE position = 'some position'
AND (company LIKE 'company 1' OR company LIKE 'company 2', etc)
问题是我不知道用户可能输入多少公司名称,我所做的是将每个名称存储在一个数组中,但我不知道它可能有多大。
我尝试使用 or_like() 事件记录,但问题是它寻找具有“positionx”的人员或在“company x”工作的人员,这不是我想要的结果。
有没有办法使用事件记录进行此查询?或者,如果我不知道要搜索的公司名称的确切数量,我该如何用简单的 SQL 进行查询。
感谢您的时间和帮助,如果有任何不清楚的地方,请告诉我。
最佳答案
尝试使用这个序列
Controller 代码
$getcompanyList=$this->input->post('company'); //post variable company from view
$data['companyList']=explode(',', $getcompanyList);
//Query for model
$getResult=$this->myModel->somefunction($data);
型号代码
function somefunction($data){
$this->db->select('*');
$this->db->where('position','some position');
$this->db->where_in('company',$data['companyList']);
//or $this->db->or_where_in('company',$data['companyList']);
$getResult=$this->db->get('work_experience');
}
现在,如果您没有获得所需的结果,则只需使用 $this->db->last_query() 打印最后一个查询,或者对您的应用程序进行分析并检查正在生成的 sql。
关于php - 如何将 'like' 与 Codeigniter 事件记录分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25627453/