2016-10-05 22 views
-1

循环,以节省每列字段picture1pic6CakePHP的唯一的循环保存数据的第一行,其他行不节能

请帮帮忙,用我的蛋糕PHP版本2.0,尽量做到循环,以节省每一列,但只第一行数据保存,数据应该像附图1一样保存。希望有人能帮忙,我试图弄清楚2周。 V_COUNT我硬编码到23

if($this->IPI->save($this->request->data)) 
{ 
    $table_name = 'IPI_V'; 
    $this->IPI->setSource($table_name); 
    for($i=1;$i<=$this->request->data['IPI']['V_COUNT'];$i++) 
    { 
     if($i<10){$i = '0'. $i;} 

     if(($this->request->data['IPI']['Quantity'.$i])!=NULL) 
     { 

      $this->request->data['IPI']['Type_Defect'] = $this->request->data['IPI']['Type_Defect'.$i];  
      $this->request->data['IPI']['CAT'] = $this->request->data['IPI']['CAT'.$i]; 
      $this->request->data['IPI']['Defect'] = $this->request->data['IPI']['Defect'.$i]; 
      $this->request->data['IPI']['Quantity'] = $this->request->data['IPI']['Quantity'.$i]; 
      $this->IPI->create(); 
      $this->IPI->save($this->request->data); 
     } 

    } 
+0

代替如果(($这 - >请求 - >数据[ 'IPI'] [ '数量'。$ I]) != NULL)尝试使用if(!empty($ this-> request-> data ['IPI'] ['Quantity'] [$ i]))否则请分享您在请求中获得的输出 –

+0

Dear Rohit,结果仍然一样,只保存了一行,这段代码我已经尝试过了,输出请参考picture2。 – user3719378

+0

好的,你可以请一个pr($ this-> request-> data)并显示你的请求数据的输出。 –

回答

0

数目尝试这个

if($this->IPI->save($this->request->data)) 
    { 
     $table_name = 'IPI_V'; 
      for($i=1;$i<=$this->request->data['IPI']['V_COUNT'];$i++) 
     { 
     $data = array(); 
     if($i<10){$i = '0'. $i;} 

     if(($this->request->data['IPI']['Quantity'.$i])!=NULL) 

     { 

     $data['IPI']['Type_Defect'] = $this->request->data['IPI']['Type_Defect'.$i];  
     $data['IPI']['CAT'] = $this->request->data['IPI']['CAT'.$i]; 
     $data['IPI']['Defect'] = $this->request->data['IPI']['Defect'.$i]; 
     $data['IPI']['Quantity'] = $this->request->data['IPI']['Quantity'.$i]; 

      $this->IPI->setSource($table_name); 
     $this->IPI->create(); 
     $this->IPI->save($data); 
     } 

     } 
+0

亲爱的罗希特,很抱歉说结果还是一样的,保存了一行。 – user3719378

+0

创建之前,你可以做一个公关($数据)和注释掉保存,并显示一张图片,你是否每次得到的数据 –

+0

亲爱的Rohit,请参考picture4.Thanks。 – user3719378