php - 如何将 'like' 与 Codeigniter 事件记录分组?

标签 php mysql sql codeigniter

我正在构建一个具有多个选项的搜索表单。这个想法是寻找具有某些特征的人,例如职业、上一份公司工作的名称、多年的经验等。

在表格的第一部分,您可以输入您希望候选人从事的职业,在第二部分,您可以输入一个或多个公司名称。我想要的是我的查询看起来像这样:

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/

相关文章:

php - 从数据库中删除 ID

mysql - 根据行结果描述在 case 内排序

sql - 这个 SQL 查询可以更高效吗?

mysql - 在 Access 中对多个表使用聚合函数

mysql - 如何从父表复制到子表,其中 1 列分为 3 个不同的列

php exec如何计算时间?

php - 使用 php 函数返回元素

sql - 使用 SQL 查找节点之间的路径

php - 使用带有 switch 功能的 foreach

php - 使用 ListView Android JSON 读取数据