2016-07-31 5 views
0

チェックボックスをオンにすると、ajaxでクーポンのリストを取得しようとしています。他のすべては正常に動作していますが、クエリは最初の一致のみを返しています。WHERE_INはcodeigniterの最初の一致のみを返します

だから私のクエリは次のとおりです。

$this->db->from('tbl_coupons'); 
     if($storeids !=''){ 
     $ids = array($storeids); 
$this->db->where_in('coupon_store', $ids); 
     }  
     $this->db->where('coupon_cat', $catid); 
     $this->db->where('coupon_status', 'active'); 
     $query = $this->db->get(); 

     if ($query->num_rows() > 0) { 
      $ds = $query->result_array();} 

これによると、私のSQLQueryが

 

SELECT * FROM `tbl_coupons` 
WHERE `coupon_store` IN('1,97') 
AND `coupon_cat` = '16' 
AND `coupon_status` = 'active' 

なるが、このクエリはcoupon_store=1で値を返していると何も結果がcoupon_store=97

のために来ていません、私がチェックそのカテゴリに存在するクーポンストア97の値。他のすべてが同じまま

WHERE coupon_store IN('1','97')

:として

+0

を作成することを願っています。 正しいクエリーは次のとおりです: 'SELECT * FROM tbl_coupons where coupon_store IN( '1'、 '97')AND coupon_cat = '16' AND coupon_status = 'active''。 IN( '1'、 '97')の引用符を見てください。 '$ ids'変数のデータを確認してください。 – mcklayin

+0

@mcklayinうん、それは働いてくれてありがとう – mohit

答えて

0

クエリは、変更を加える必要がある行2、時を除いて、ほとんどが正しいです。

2

以下の方法でデータが存在する場合は、クエリの一部になります。

 storeids = explode(',',storeids); 
     $ids = array(); 
     foreach($storeids as $val){ 
      $ids[] = $val; 
     } 
     if(!empty($ids)){ 
      $this->db->where_in('coupon_store', $ids); 
     } 

は、クエリが間違っているので、それは適切なSQLクエリ

関連する問題