2017-09-15 3 views
0

OR条件での取得方法と条件。また、ORが機能していない状態で使用されます。or_whereの使い方とcodeigniterのajaxデータの条件

$this->datatables->select('otest_questions.qst_id,otest_sub_category.sub_cat_name,otest_subjects.subject_display_name,otest_questions.qst_question,otest_questions.qst_status'); 
     $this->datatables->join('otest_subjects',' otest_questions.qst_subject_id=otest_subjects.subject_id'); 
     $this->datatables->join('otest_main_category','otest_subjects.subject_main_cat_id=otest_main_category.main_cat_id'); 
     $this->datatables->join('otest_sub_category','otest_main_category.main_cat_id=otest_sub_category.sub_cat_main_cat_id'); 
     $this->datatables->where(array('otest_questions.qst_added_by'=>$this->session->userdata['inst_in']['inst_id'],'otest_questions.qst_chapter_id'=>$this->input->get('chapter'))); 
     $this->datatables->or_where(array('otest_questions.access_level'=>1)); 
     $this->datatables->where(array('otest_questions.qst_chapter_id'=>$this->input->get('chapter'))); 

     $this->datatables->group_by('otest_questions.qst_id'); 
     $this->datatables->from('otest_questions'); 
     } 

     echo $this->datatables->generate(); 

実行されたクエリは、(otest_questions)FROM

SELECT * otest_questions ON otest_subjectsをJOINです。 qst_subject_id = otest_subjectssubject_id JOIN otest_main_category ON otest_subjectssubject_main_cat_id = otest_main_categorymain_cat_id JOIN otest_sub_category ON otest_main_categorymain_cat_id = otest_sub_categorysub_cat_main_cat_idWHERE otest_questionsqst_added_by = '12' AND otest_questionsqst_chapter_id = '988' AND otest_questionsqst_chapter_id = '988' OR otest_questionsaccess_level = 1 GROUP BY otest_questionsqst_id

しかし、クエリが

otest_questionsでなければなりません。 qst_added_by = '12' AND otest_questionsqst_chapter_id = '988' OR otest_questionsaccess_level = 1 AND otest_questionsqst_chapter_id = '988'

+0

'group_by'必要'順 –

+0

or_whereがor_whereで同じデータベースの私が使用したい列 –

答えて

0
だけでなく句by`
$inst_id = $this->session->userdata['inst_in']['inst_id']; 
$chapter = $this->input->get('chapter'); 

$query = "SELECT * FROM (otest_questions) 
JOIN otest_subjects ON otest_questions.qst_subject_id=otest_subjects.subject_id 
JOIN otest_main_category ON otest_subjects.subject_main_cat_id=otest_main_category.main_cat_id 
JOIN otest_sub_category ON otest_main_category.main_cat_id=otest_sub_category.sub_cat_main_cat_id 
WHERE (otest_questions.qst_added_by = '$inst_id' AND otest_questions.qst_chapter_id = '$chapter') 
OR (otest_questions.qst_chapter_id = '$chapter' AND otest_questions.access_level = 1) 
GROUP BY otest_questions.qst_id"; 

$this->datatables->query($query); 
+0

と条件を確認する必要があります。 – Deepa

0
$query = "(SELECT a.qst_id,d.sub_cat_name,b.subject_display_name,a.qst_question,a.qst_status from otest_questions as a JOIN otest_subjects as b ON a.qst_subject_id = b.subject_id JOIN otest_main_category as c ON b.subject_main_cat_id = c.main_cat_id JOIN otest_sub_category as d ON c.main_cat_id = d.sub_cat_main_cat_id WHERE a.qst_added_by =".$this->session->userdata['inst_in']['inst_id'] ." AND a.qst_chapter_id =".$this->input->get('chapter')." OR a.access_level = 1 AND a.qst_chapter_id =".$this->input->get('chapter')." GROUP BY a.qst_id) as F"; 
    $this->datatables->select('*'); 
    $this->datatables->from($query); 
    echo $this->datatables->generate(); 
関連する問題