作者 主題: 批量寫入問題  (閱讀 2581 次)

0 會員 與 1 訪客 正在閱讀本文。

chingfeng18

  • 可愛的小學生
  • *
  • 文章數: 17
  • 性別: 男
  • 蒼鴻
    • 檢視個人資料
批量寫入問題
« 於: 2012-09-13 11:17 »
各位先進,前輩們大家好~~!
小弟俺有個問題,俺有個資料表A,讀取出來,做處理,想要更新原A資料表,之後再把A資料表寫入B資料表(有些名稱不同)。
小弟使用framework CodeIgniter
以下是小弟的controllers code,第一次測試沒有加入FOR,只會寫入第一筆資料,加入FOR之後會以第一筆資料重複輸入2次,請各位大大們幫忙OR給小弟一個方向!!
感激不盡 ORZ
如問題不清楚請跟小弟說一下
代碼: [選擇]
function PD()
    {
       $seq=  $this->db->get('processing');
       foreach ($seq->result_array() as $row)
       {
           
           $e = $row['Complete2'] - $row['Heavy2'];
           $t= $row['Complete'] + $e;
           $a = $row['Quantity'] - $e;
           $q= $row['Quantity3'] + $e;
           $r=$this->db->count_all('processing');
           for($row['ID'] ; $row['ID'] <= $r;$row['ID']++)
           {
           $this->db->where('ID',$row['ID'])->set('Quantity3',$q)->set('Quantity',$a)->set('Complete',$t)->set('Complete2',0)->update('processing');
           }
           for($row['ID'] ; $row['ID'] <= $r;$row['ID']++)
           {
           $this->db->where('ID',$row['ID'])->set('ProcessingName',$row['ProcessingName'])->set('Checkout',$e)->set('Time',date("m"))
                   ->set('UpdateTime', date("Y-m-d A h:i"))->set('ID',$row['ID'])->set('Unit',$row['Unit'])->insert('sequestration');
           }
           $ti=date("m");
           redirect("../index1.php/MES/Sequestration/$ti");
       }
       
    }

FIEND

  • 鑽研的研究生
  • *****
  • 文章數: 700
    • 檢視個人資料
    • http://bbs.ecstart.com
Re: 批量寫入問題
« 回覆 #1 於: 2012-09-13 12:43 »
各位先進,前輩們大家好~~!
小弟俺有個問題,俺有個資料表A,讀取出來,做處理,想要更新原A資料表,之後再把A資料表寫入B資料表(有些名稱不同)。
小弟使用framework CodeIgniter
以下是小弟的controllers code,第一次測試沒有加入FOR,只會寫入第一筆資料,加入FOR之後會以第一筆資料重複輸入2次,請各位大大們幫忙OR給小弟一個方向!!
感激不盡 ORZ
如問題不清楚請跟小弟說一下
代碼: [選擇]
function PD()
    {
       $seq=  $this->db->get('processing');
       foreach ($seq->result_array() as $row)
       {
           
           $e = $row['Complete2'] - $row['Heavy2'];
           $t= $row['Complete'] + $e;
           $a = $row['Quantity'] - $e;
           $q= $row['Quantity3'] + $e;
           $r=$this->db->count_all('processing');
           for($row['ID'] ; $row['ID'] <= $r;$row['ID']++)
           {
           $this->db->where('ID',$row['ID'])->set('Quantity3',$q)->set('Quantity',$a)->set('Complete',$t)->set('Complete2',0)->update('processing');
           }
           for($row['ID'] ; $row['ID'] <= $r;$row['ID']++)
           {
           $this->db->where('ID',$row['ID'])->set('ProcessingName',$row['ProcessingName'])->set('Checkout',$e)->set('Time',date("m"))
                   ->set('UpdateTime', date("Y-m-d A h:i"))->set('ID',$row['ID'])->set('Unit',$row['Unit'])->insert('sequestration');
           }
           $ti=date("m");
           redirect("../index1.php/MES/Sequestration/$ti");
       }
       
    }

先 UPDATE 完再用 select insert 就好了 @@"

PS : 看不出問題的主題是什麼 @@"


你累了嗎? 這樣不行 , 人要比 LINUX 兇 @@ " ......

chingfeng18

  • 可愛的小學生
  • *
  • 文章數: 17
  • 性別: 男
  • 蒼鴻
    • 檢視個人資料
Re: 批量寫入問題
« 回覆 #2 於: 2012-09-13 13:07 »
不過現在卡到的問題是
只能更新一筆A表單
和新增一筆B表單
俺想要A表單所有資料一起更新 囧RZ
還有把資料再加入到B表單(多筆) ORZ

chingfeng18

  • 可愛的小學生
  • *
  • 文章數: 17
  • 性別: 男
  • 蒼鴻
    • 檢視個人資料
Re: 批量寫入問題
« 回覆 #3 於: 2012-09-13 14:00 »
以解決
修改OK的code
俺就後面想想for為什麼不放前面直接用來for 'ID'這個流水編號
以count_all先抓出筆數
在用for $d 去跑
在來就是以ID去撈資料庫
去做更新 與 新增
只是感覺是一次一筆資料 不是批量
代碼: [選擇]
    function PD()
    {
        $aaa=$this->db->count_all('processing');
           for($d = 1 ; $d <=$aaa ;$d++)
           {
               $dn= $this->db->where('ID',$d)->get('processing');
               foreach($dn->result_array() as $row)
               {
           $e = $row['Complete2'] - $row['Heavy2'];
           $t= $row['Complete'] + $e;
           $a = $row['Quantity'] - $e;
           $q= $row['Quantity3'] + $e;
           $this->db->where('ID',$row['ID'])->set('Quantity3',$q)->set('Quantity',$a)->set('Complete',$t)->set('Complete2',0)->update('processing');
           $this->db->set('ID',$row['ID'])->set('ProcessingName',$row['ProcessingName'])->set('Checkout',$e)->set('Time',date("m"))
                   ->set('UpdateTime', date("Y-m-d A h:i"))->set('ID',$row['ID'])->set('Unit',$row['Unit'])->insert('sequestration');
           }
           }
           $ti=date("m");
           redirect("../../MES/Sequestration/$ti");
           
    }
« 上次編輯: 2012-09-25 14:23 由 chingfeng18 »