У меня есть пользовательский запрос внутри CI, который извлекает несколько данных из двух таблиц. Я реализую механизм поиска, в котором анализируются несколько параметров, используя запрос получения. Я хочу настроить их запрос для извлечения данных на основе параметров поиска!
это мой запрос, который работает, и он не содержит предложения 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 моего запроса соединения.
$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();