0

codeigniter を使用して、(テーブルから取得した) レコードを別のテーブルに挿入したいと考えています。これがレコードを追加する関数です。$nokw を渡して、外部キーとして別のテーブルに挿入します。

function add_detail($nokw){
    $id_sj = $this->session->userdata('id');
    $upddate = date('Y')."-".date('m')."-".date('d')." ".date('H').":".date('i').":".date('s');
    $i=0;
    $this->suratjalan->where('IDDeliveryNo',$id_sj);
    $rec = $this->suratjalan->get("t02deliveryno_d")->result_array();

    // parse the result and insert it into an array 
    foreach ($rec as $det){
    $i++;
        $detail[$i] = array(
            'ID' => '',
            'NoKwitansi' => $nokw,
            'TypeProduct'=> $det['TypeProduct'],
            'PartNo' => $det['PartNo'],
            'PartNoVendor'=> $det['PartNoVendor'],
            'SerialPanel' => $det['SerialPanel'],
            'Description' => $det['Description'],
            'Dimension'   => $det['Dimension'],
            'DescriptionVendor' => $det['DescriptionVendor'],
            'DimensionVendor' => $det['DimensionVendor'],
            'PrintedProduct' => $det['PrintedProduct'],
            'Qty' => $det['Qty'],
            'UoM' => $det['UoM'],
            'Remark' => $det['Remark'],
            'UpdUser'=>  $this->session->userdata('user'),
            'UpdDate'=> $upddate
        );

        // insert the record
        $this->finance->insert('t02fkpd',$detail[$i]);
    }
}

動作しますが、テーブル 't02deliveryno_d' から複数の行が返された場合は動作しません。レコードを挿入するとエラーが発生すると思います。を使用して、配列$i++に異なるインデックスを作成します。$detail

これを修正して複数の行を正しく挿入するにはどうすればよいですか?

4

2 に答える 2

0

私はあなたの質問を正しく理解していません。しかし、http://ellislab.com/codeigniter/user-guide/database/active_record.html#insertを使用すると、間違いなく役立つと思います。

insert_batch配列を作成し、テーブル名と配列を使用して関数に渡すことができます。これは間違いなくあなたを助けます。

user-guidecodeigniterをチェックしている必要がある場合。すべての機能が文書化されている優れた文書の 1 つです。

于 2013-07-18T04:05:36.083 に答える