2016-04-08 6 views
0

Я просто хочу сделать это, если (status == 0), тогда только там, где выполняется условие, и печать относится только к статусу == 0. И когда состояние == 1 приходит, оно обходит и распечатать обе данные для статуса 0 и 1. Я не знаю, как построить запрос для этого. Пожалуйста, помогите мне в этом.Если условие с предложением where

мой код модели

function listing(){  
$admin_id = $this->session->userdata('admin_id'); 
$query = $this->db->select('student_info.*,admin.status') 
     ->from('student_info') 
     ->where('student_info.admin_id',$admin_id) 
     ->join('admin','admin.admin_id = student_info.admin_id') 
     ->get(); 
return $query->result(); 
} 

Этот код будет работать должным образом и печатать отдельные данные, статус 0 или 1.

Только admin_id = 1 содержит Status = 1, другие идентификаторы содержат 0 статус.

ответ

0

Попробуйте это:

 function listing(){  
      $admin_id = $this->session->userdata('admin_id'); 
      $query = $this->db->select('student_info.*,admin.status') 
       ->from('student_info')      
       ->join('admin','admin.admin_id = student_info.admin_id') 
       ->where("student_info.admin_id = IF (admin.status = 0, $admin_id, '>-1'") 
       ->get(); 
      return $query->result(); 
     } 
+0

он дает ошибку : Номер ошибки: 1064 –

+0

О, один дополнительный знак равенства (=) был t Вот. Можете ли вы попробовать отредактированный ответ –

+0

извините, но сэр все еще получает сообщение об ошибке. –

0

Заменить функцию со следующим кодом ...

<?php 
function listing($status) 
{  
    $this->db->select('student_info.*,admin.status'); 
    $this->db->from('student_info'); 
    if($status==0) 
    { 
     $this->db->where('student_info.admin_id',$admin_id); 
    } 
    $this->db->join('admin','admin.admin_id = student_info.admin_id'); 
    $query = $this->db->get(); 
    return $query->result(); 
} 
?> 
+0

Он дает ошибку: синтаксическая ошибка, неожиданный T_IF в D: \ xampp \ htdocs \ ci \ application \ models \ student.php в строке 17 –

+0

извините сэр, но он по-прежнему дает ошибку: неожиданный T_OBJECT_OPERATOR –

+0

какая у вас версия php? ? –

0

Это решает мою проблему ..

function listing() 
{ 
$admin_id = $this->session->userdata('admin_id'); 
$this->db->select('student_info.*,admin.status'); 
$this->db->from('student_info'); 
$this->db->join('admin','admin.admin_id = student_info.admin_id'); 
$this->db->where('student_info.admin_id',$admin_id); 
$this->db->or_where('admin.status < 1'); 
$query = $this->db->get(); 
return $query->result(); 

} 
0
<?php 
    function listing($status) 
    {  
if($status == 0){ 
$this->db->select('student_info.*,admin.status'); 
     $this->db->from('student_info'); 
     $this->db->where('student_info.admin_id',$admin_id); 
     $this->db->join('admin','admin.admin_id = student_info.admin_id'); 
     $query = $this->db->get(); 
     return $query->result(); 
}else{ 
$this->db->select('student_info.*,admin.status'); 
     $this->db->from('student_info'); 
     $this->db->join('admin','admin.admin_id = student_info.admin_id'); 
     $query = $this->db->get(); 
     return $query->result(); 
} 


    } 
    ?> 
Смежные вопросы