我有这样的查询。

WHERE (timetable_id = '1' 
       OR timetable_id = '2' 
       OR timetable_id = '3' 
       OR timetable_id = '4' 
       OR timetable_id = '5' 
       OR timetable_id = '6')

AND exam_name_id = '5'

但是我不知道如何在Codeigniter中执行此操作。

我已经试过了

while(@$i <= 6 {                         
   $this->db->or_where('timetable_id',$this->input->post('timetable_id'.$i));
   $i++;   
   }                    
$this->db->where('et.exam_name_id',5); 

但是上面的命令给出了这样的输出

WHERE timetable_id = '1'
      OR timetable_id = '2' 
      OR timetable_id = '3' 
      OR timetable_id = '4' 
      OR timetable_id = '5' 
      OR timetable_id = '6'
      AND et.exam_name_id = '5'

这给出了所有输出。 如何正确地做到这一点? 请注意在我的查询中我有()大括号。

#1楼 票数:2

如果您使用的是CI 3.xx版本,则可以使用

$this->db->group_start();
while($i <= 6) {                         
   $this->db->or_where('timetable_id',$this->input->post('timetable_id'.$i));
   $i++;   
   }                    
$this->db->group_end();
$this->db->where('et.exam_name_id',5); 

CI 2.xx版本中,字符串中的传递条件

#2楼 票数:1 已采纳

@$i = 1;
$n = $this->input->post('timetable_id'.$i);
$or_where = "(";
$or_where.="timetable_id = $n";
for ($i; $i <= 6; $i++) {
    $n = $this->input->post('timetable_id'.$i);
    $or_where.=" OR timetable_id = $n";
}
$or_where.=")";     
$this->db->or_where($or_where);

这将给您期望的答案。

#3楼 票数:0

使用while循环会使自己变得困难。 另外,如果您使用循环构建数字,我也不明白为什么使用$this->input->post() 我会用这样的for循环:

for ($i = 1; $i <= 6; $i++) {
    $this->db->or_where('timetable_id', $i);
}
$this->db->where('et.exam_name_id', 5);

  ask by Praveen Srinivasan translate from so

未解决问题?本站智能推荐:

6回复

在 Codeigniter 中对 WHERE 子句进行分组

我想在 Codeigniter 中使用 Active Record 生成以下 SQL 代码: 做以下似乎尽我所能,我不知道如何将它们分组 有任何想法吗? 我的 SQL 查询太复杂了,所以我不想用传统的 SQL 重写所有内容。 更新 我的 SQL 代码是根据传递给模型方法的某些参数的值动态生
3回复

在codeigniter中如何使用where子句进行连接

所以我有两个表,我想从表1中获取满足where子句条件的所有行,然后根据连接条件将它们与表2连接起来。 这是示例表: 现在我想获取表1中col1 = 2的所有行,并将这些行与table2中的行连接,其中table2.col1 = table1.col1。 那有意义吗?
2回复

CodeIgniter中的多条件WHERE子句

我想删除一些像核心PHP中的查询这样的数据 所以我在CodeIgniter中尝试使用Active Record,如下所示: 但它给了我错误的结果。 我究竟做错了什么?
2回复

Codeigniter中的多列where_in子句

下面是codeigniter单列where_in子句$this->db->where_in('x1',$val); 我如何在CodeIgniter where_in子句中传递多个列,例如下面的MySQL查询, select * from tab1 where (col1,col
1回复

CodeIgniter:where子句中的case

我们如何在CodeIgniter的活动记录中的where子句条件中陈述case ? 这是我想要实现的查询 我试图在谷歌上搜索这个问题,但仍然找不到任何答案。
2回复

将where子句添加到codeigniter中的每个查询

我有一种情况,我已经更新了所有数据库表,以包括一个名为“ siteid”的新字段。 因此,我想在codeigniter生成的每个查询中执行where子句。 没有在每个模型中手动添加where子句的方法,有什么办法? 这是一个例子 我想向每个查询添加一个新的where子句,以便它
2回复

不确定将where子句放在codeigniter中的位置

我一直在查看codeigniters网站上的活动记录指南,并试图确定在模型或控制器中将where子句放在哪里? 我认为它已包含在模型中,但不确定如何实现。 $ where =“ EmpName ='Donny”; $这 - > DB->其中($其中); 名为Home.ph
1回复

Codeigniter查询中where子句中的未知列

我有一个codeigniter项目。 我有一些下拉菜单,可以在其中选择校园,课程,班级,小组。 我想根据这些下拉值过滤数据。 这是我称之为的功能 但我得到错误: