首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在join的where子句中传递数组

在join的where子句中传递数组
EN

Stack Overflow用户
提问于 2017-12-24 04:36:47
回答 1查看 153关注 0票数 0

我在CI中有一个自定义查询,它从两个表中提取多个数据,我正在实现一个搜索机制,其中使用get请求解析多个参数,我想自定义它们的查询,以根据搜索参数提取数据!

这是我正在运行的查询,它不包含任何where子句

代码语言:javascript
复制
 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的格式

代码语言:javascript
复制
http://localhost/online-learning/Home/courses?courses=1-3&teacher=1 

在我的控制器中,我正在做这样的事情

代码语言:javascript
复制
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);

        }

现在,数据以

代码语言:javascript
复制
Array
(
    [courses] => Array
        (
            [0] => 1
            [1] => 3
        )

    [teacher] => Array
        (
            [0] => 1
        )

)

那么如何在连接查询的where子句中传递这个数组呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-24 04:45:31

代码语言:javascript
复制
$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();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47955830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档