Php CodeIgniter中的分组WHERE子句

Php CodeIgniter中的分组WHERE子句,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有一个这样的疑问 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(

我有一个这样的疑问

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); 
这将提供所有输出。如何正确地做到这一点?
请注意,在我的查询中,我有大括号

你让自己很难使用while循环。另外,我不明白如果你在用循环生成数字,为什么要使用
$this->input->post()。我会使用一个
循环,如下所示:

for ($i = 1; $i <= 6; $i++) {
    $this->db->or_where('timetable_id', $i);
}
$this->db->where('et.exam_name_id', 5);
用于($i=1;$i db->或其中('timeline\u id',$i);
}
$this->db->where('et.exam\u name\u id',5);

你让自己使用while循环变得很困难。而且,如果你正在用循环生成数字,我不明白你为什么要使用
$this->input->post()
。我会用
来实现这样的循环:

for ($i = 1; $i <= 6; $i++) {
    $this->db->or_where('timetable_id', $i);
}
$this->db->where('et.exam_name_id', 5);
用于($i=1;$i db->或其中('timeline\u id',$i);
}
$this->db->where('et.exam\u name\u id',5);

你让自己使用while循环变得很困难。而且,如果你正在用循环生成数字,我不明白你为什么要使用
$this->input->post()
。我会用
来实现这样的循环:

for ($i = 1; $i <= 6; $i++) {
    $this->db->or_where('timetable_id', $i);
}
$this->db->where('et.exam_name_id', 5);
用于($i=1;$i db->或其中('timeline\u id',$i);
}
$this->db->where('et.exam\u name\u id',5);

你让自己使用while循环变得很困难。而且,如果你正在用循环生成数字,我不明白你为什么要使用
$this->input->post()
。我会用
来实现这样的循环:

for ($i = 1; $i <= 6; $i++) {
    $this->db->or_where('timetable_id', $i);
}
$this->db->where('et.exam_name_id', 5);
用于($i=1;$i db->或其中('timeline\u id',$i);
}
$this->db->where('et.exam\u name\u id',5);

如果您使用的是
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); 
$this->db->group_start();
while($i db->or_where('timeline_id'),$this->input->post('timeline_id'.$i));
$i++;
}                    
$this->db->group_end();
$this->db->where('et.exam\u name\u id',5);

ci2.xx
版本传递条件中,如果使用
ci3.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); 
@$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);
$this->db->group_start();
while($i db->or_where('timeline_id'),$this->input->post('timeline_id'.$i));
$i++;
}                    
$this->db->group_end();
$this->db->where('et.exam\u name\u id',5);

ci2.xx
版本传递条件中,如果使用
ci3.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); 
@$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);
$this->db->group_start();
while($i db->or_where('timeline_id'),$this->input->post('timeline_id'.$i));
$i++;
}                    
$this->db->group_end();
$this->db->where('et.exam\u name\u id',5);

ci2.xx
版本传递条件中,如果使用
ci3.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); 
@$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);
$this->db->group_start();
while($i db->or_where('timeline_id'),$this->input->post('timeline_id'.$i));
$i++;
}                    
$this->db->group_end();
$this->db->where('et.exam\u name\u id',5);
ci2.xx中
字符串中的版本通过条件

@$i=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);
$n=$this->input->post('timeline\u id'.$i); $or_其中=“(”; $or_where.=“时间表id=$n”; 对于($i;$i输入->发布($i); $or_where.=“或时间表id=$n”; } $or_where.=”; $this->db->or_where($or_where);
这将给出您期望的答案。

@$i=1;
$n=$this->input->post('timeline\u id'.$i);
$or_其中=“(”;
$or_where.=“时间表id=$n”;
对于($i;$i输入->发布($i);
$or_where.=“或时间表id=$n”;
}
$or_where.=”;
$this->db->or_where($or_where);
这将给出您期望的答案。

@$i=1;
$n=$this->input->post('timeline\u id'.$i);
$or_其中=“(”;
$or_where.=“时间表id=$n”;
对于($i;$i输入->发布($i);
$or_where.=“或时间表id=$n”;
}
$or_where.=”;
$this->db->or_where($or_where);
这将给出您期望的答案。

@$i=1;
$n=$this->input->post('timeline\u id'.$i);
$or_其中=“(”;
$or_where.=“时间表id=$n”;
对于($i;$i输入->发布($i);
$or_where.=“或时间表id=$n”;
}
$or_where.=”;
$this->db->or_where($or_where);


这将给出您期望的答案。

我得到的结果与我在查看页面中进行计数之前得到的结果相同,因此我正在使用
$This->input->post()
确定。请编辑您的OP(原始帖子)并提供您的控制器和视图,以便进一步了解您试图实现的目标。我得到的结果与我在查看页面中计数之前得到的结果相同,因此我使用的是
$this->input->post()
确定。请编辑您的OP(原始帖子)并提供您的控制器和视图,以便进一步了解您试图实现的目标。我得到的结果与我在查看页面中计数之前得到的结果相同,因此我使用的是
$this->input->post()
确定。请编辑您的OP(原始帖子)并提供您的控制器和视图,以便进一步了解您试图实现的目标。我得到的结果与我在查看页面中计数之前得到的结果相同,因此我使用的是
$this->input->post()
确定。请编辑您的OP(原始帖子)并提供您的控制器和视图,以便进一步了解您试图实现的目标。上面说的
致命错误:调用未定义的方法CI\u DB\u mysql\u driver::group\u start()
抱歉,刚才看到了…您还发布了答案…
group\u start()
group\u end()
函数在
CI 3.xx
中可用,可能您正在使用
CI 2.xx
@PraveenSrinivasan查看此内容感谢您的回复@GirishIt said
致命错误:调用未定义的方法CI\u DB\u mysql\u driver::group\u start()
抱歉,刚才看到了…您还发布了答案…
group\u start()
group\u end()
功能可在
CI 3.xx
中使用,您可能正在使用
CI 2.xx
@PraveenSrinivasan查看此功能,谢谢