2016-10-01 13 views
0

$data配列をwhere句に渡してこのクエリを実行しようとしていますが、この$data配列内で1つ以上のフィールド値がnullで、一部のフィールドが以下のようになります。where節のnullフィールドを持つ配列がCodeigniterのActiverecordで機能しない

$data = Array(
[c.client_id]=> 
[c.conn_type]=> 
[c.pkg_id]=> 2 
[c.area_id]=> 1 
[c.managed_by]=> 3 
[c.status]=> 
) 

function getAllClientByParam($data){ 
     $this->db->select('c.client_id, c.client_name, c.conn_charge, c.con_date, cd.disconnect, c.mobile, p.pkg_name, ct.conn_type, s.status, a.area, m.managed_by, c.remarks'); 
     $this->db->from('bill_client AS c'); 
     $this->db->join('bill_connection_details AS cd','c.client_id=cd.client_id','LEFT'); 
     $this->db->join('bill_pkg AS p','c.pkg_id=p.pkg_id','LEFT'); 
     $this->db->join('bill_connection_type AS ct','c.conn_type=ct.conn_id','LEFT'); 
     $this->db->join('bill_conn_status AS s','c.status=s.id','LEFT'); 
     $this->db->join('bill_area AS a','c.area_id=a.area_id','LEFT'); 
     $this->db->join('bill_managed_by AS m','c.managed_by=m.managed_id','LEFT'); 
     $this->db->where('c.company_id', $this->company_id); 
     $this->db->where($data); 

     $client_list = $this->db->get(); 
     $data = $client_list->result(); 
     return $data; 
} 

は、どのように私はwhere句で$data変数に応じて、このクエリですべてのデータを取得するのですか?あなたの例の$データで

答えて

0

それはいつもあなたの例$データがする必要があるだろう...実際の値を持つエントリが含まれている必要はあります...だから

$data = array(
     'c . pkg_id'  => 2, 
     'c . area_id ' => 1, 
     'c . managed_by' => 3 
    ); 

あなたは$を構築する必要がありますデータ配列を渡してからメソッドに渡します。

関連する問題