2014-12-19 3 views
0

codeigniter에서 업데이트 쿼리 문제가 있습니다.CI에서 쿼리를 업데이트하는 방법

$arrPartnerId = $partnerData['partner_id']; 
      print_r($partnerData['partner_id']); 

      if(is_array($arrPartnerId) > 0){ 
       foreach($arrPartnerId as $partnerId){ 
        $this->db->set('partner_id', $partnerId); 
        $this->db->where('promotion_id', $promotionData['promotion_id']); 
        $this->db->update('partner_promotion_relation'); 
       } 
      } 

내 데이터 $ aaPartnerId =이다 ([0] => 4, [1] =>을 5) 나 데이터베이스의 업데이트 방법을 한 후 ID있다.

+0

'$ promotionData [ 'promotion_id']'는 모든 설정 값에서 동일하며 마지막 값은 db에서 영향을받습니다 – Girish

+0

이것은 마지막 값 – user3685376

+0

입니다.이 경우 'partner_promotion_relation'테이블이 두 번 업데이트되지만 행은 'promotion_id '= $ promotionData ['promotion_id ']로 변경되어 동일한 행이 두 번 업데이트됩니다. – John

답변

0

나는 당신이 어디에 설정 상태를 혼동 생각, 당신은 오히려이 있어야한다 :

$this->db->set('promotion_id', $promotionData['promotion_id']); 
$this->db->where('partner_id', $partnerId); 
$this->db->update('partner_promotion_relation'); 

를 귀하의 경우에 당신이 당신의 테이블에 업데이 트를 2 번 같은 라인을 유지하기 때문에, 그냥 가설이다, 인 논리적이지 않다. 배열 인 경우이 같은

0

, 그것은 문제를 해결할 수

if(sizeof($arrPartnerId) > 0) 
     { 
      foreach($arrPartnerId as $partnerId) 
      { 
       $this->db->set('partner_id', $partnerId); 
       $this->db->where('promotion_id', $promotionData['promotion_id']); 
       $this->db->update('partner_promotion_relation'); 
      } 
     } 

$arrPartnerId = array(
        0 => 4, 
        1 => 5 
        ); 

그리고

$promotionData['promotion_id'] = 123; //assumption 

그런 다음이 시도

.

관련 문제