我在CI中有一个自定义查询,它从两个表中获取多个数据我正在实现一个搜索机制,其中使用get请求解析多个参数我想自定义它们查询以根据搜索参数获取数据!
这是我的查询,它正在运行,并且它不包含任何where子句
return $this->db->query('Select t1.id,t1.course_name,t1.course_duration,t1.course_price,t1.course_category, t2.first_name , t2.last_name , t2.email
from teacher_courses as t1 LEFT JOIN teacher as t2 on t1.teacher_id=t2.id
')->result_array();
现在查询将保持完全相同我只想根据where子句中的搜索参数输入检索数据
这是我的网址
的格式http://localhost/online-learning/Home/courses?courses=1-3&teacher=1
在我的控制器里面我正在做这样的事情
if(isset($_GET['courses'])){
(isset($_GET['courses'])) ? $get['courses']=explode('-', $_GET['courses']) :"";
(isset($_GET['teacher'])) ? $get['teacher']=explode('-', $_GET['teacher']) :"";
echo "<pre>";
print_r($get);
}
现在以
的形式检索数据Array
(
[courses] => Array
(
[0] => 1
[1] => 3
)
[teacher] => Array
(
[0] => 1
)
)
所以如何在我的连接查询的where子句中传递这个数组。
答案 0 :(得分:2)
$courses = implode(',', $array['courses']);
$teacher = implode(',', $array['teacher']);
return $this->db->query('Select
t1.id,t1.course_name,t1.course_duration,t1.course_price,t1.course_category,
t2.first_name , t2.last_name , t2.email
from teacher_courses as t1
LEFT JOIN teacher as t2 on t1.teacher_id=t2.id WHERE course_id IN ($courses) AND teacher_id IN ($teacher)')->result_array();