I have the following Active Record query.
//Example 1
public function info($school, $class, $student, $keyword)
{
$this->db->where('school.id', $school);
$this->db->where('class.id', $class);
$this->db->where('student.id', $student);
$this->db->or_where('school.description', $keyword);
$this->db->or_where('class.description', $keyword);
$this->db->or_where('student.description', $keyword);
return $this->db->get('info')->result();
}
I want to group the bottom 3 "or_where" statements so they are included with the top 3 "where" statements. The solution I came up with was this...
//Example 2
public function info($school, $class, $student, $keyword)
{
$this->db->where('school.description', $keyword);
$this->db->where('school.id', $school);
$this->db->where('class.id', $class);
$this->db->where('student.id', $student);
$this->db->or_where('class.description', $keyword);
$this->db->where('school.id', $school);
$this->db->where('class.id', $class);
$this->db->where('student.id', $student);
$this->db->or_where('student.description', $keyword);
$this->db->where('school.id', $school);
$this->db->where('class.id', $class);
$this->db->where('student.id', $student);
return $this->db->get('info')->result();
}
This works fine, but is there a way to do this without repeating code?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…