代码点火器多个where子句不起作用


Code Igniter multiple where clauses are not working

当页面加载性别=3,如果单击女性按钮性别=1,如果单击男性按钮性别=2时,代码点火器模型返回json_encode结果。现在,我想在if条件的旁边添加另一个where语句。如果条件为,则查看性别是否为3。

function get_data_all($gender, $age_min, $age_max) { 
        
        $counter = 0;             
        $this->db->select('*');             
        if($gender == 1){ 
            $this->db->where('gender', 'F'); //working 
            $counter++;
        }
        elseif($gender == 2){
            $this->db->where('gender', 'M');  //working                        
            $counter++;
        }
        elseif($gender == 3){                   
            $names = array('F', 'M');              
            $this->db->where_in('gender', $names);   //working 
            $this->db->where('age>=', 12);  //not working
            $this->db->where('age<=', 18);  //not working               
            $counter++;
        }
        else{
            redirect(base_url());
        }                    
        $query = $this->db->get('sudent_details');               
        if (($query->num_rows() > 0) && ($counter > 0)){                
            echo(json_encode($query->result()));                          
            $counter = 0;                            
        } else {                
            return false;
        }
    }

在列名中添加空格&比较操作员

$this->db->where('age >= ', 12);
$this->db->where('age <= ', 18);

您需要替换以下行:

$this->db->where('age>=', 12);  //not working
$this->db->where('age<=', 18);  //not working  

TO:

$this->db->where('age','>=',12);  
$this->db->where('age','<=',18);

OR:

$this->db->where('age >= 12',FASLE,FALSE);  
$this->db->where('age <= 18',FASLE,FALSE);

OR:

$this->db->where('age>=', 12,FALSE);
$this->db->where('age<=', 18,FALSE);

它应该起作用。