2017-07-06 49 views
0

這裏是我的函數我想把數組值置於IN()子句中,但它不起作用
這裏$ids是傳遞給它的數組。傳遞數組來模擬函數查詢codeigniter

function get_school_students_data($ids){ 
    $query=$this->db->query("SELECT * FROM screening_answers where uid 
    IN(".implode(',',$ids).")"); 
    $result=$query->result_array(); 
    return $query->num_rows(); 
    } 
+0

你是什麼意思不工作?引發錯誤或錯誤的結果? – GeorgeGeorgitsis

+0

錯誤的結果只有數組的第一個索引顯示 –

+0

嘗試'echo「SELECT * FROM screening_answers where uid IN(」。implode(',',$ ids)。「)」;「並查看它是否正在生成期望的查詢。如果看起來不錯,那麼數據庫中沒有數據。如果看起來不對,請修復SQL。如果'$ ids'包含字母,那麼你需要構建你的'in()'子句來引用你的值。 – MonkeyZeus

回答

0

試試這個

$this->db->where_in('uid',$ids); 

所以在模型

function get_school_students_data($ids){ 
    $this->db->where_in('uid',$ids);//$ids should be an array like array('20','15','22','42','86') 
    $query = $this->db->get("screening_answers"); 
    $result=$this->db->result_array();// no need of this in your scenario 
    return $this->db->num_rows(); 
} 
+0

負面標記請解釋你自己.. –

+0

我這樣做沒有顯示結果 –

+0

你確定'$ ids'是一個數組,請發佈您的控制器代碼也... –

0

這是最好用笨的活動記錄

$this->db->query("SELECT * FROM screening_answers where uid 
IN(".implode(',',$ids).")"); 

成爲

$this->db->select(); 
$this->db->from('screening_answer'); 
$this->db->where_in('uid',$ids); 
0

試試這個公司對我 //工作對於簡單/隨機搜索

function search($designation){ 
     $this->db->select("*"); 
     foreach($designation as $single_data) $this->db->or_like("designation",$single_data); 
     $this->db->order_by('rand()'); 
     $this->db->limit(100); 
     $this->db->from('content'); 
     $query = $this->db->get(); 
     return $query->result(); 
    }