我在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子句中输入基于搜索参数检索数据
这是我的url的格式
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子句中传递这个数组呢?
发布于 2017-12-24 04:45:31
$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();https://stackoverflow.com/questions/47955830
复制相似问题