douhan8892 2013-02-05 09:49
浏览 48
已采纳

CodeIgniter将多维数组作为单独的行插入到数据库表中

saving post value to an array.

$data2 = array(
  'invoice_id' =>($id),
  'order_id' => $this->input->post('order_id'),
  'invoiceitems_servicetype' =>$this->input->post('type'),
  'invoiceitems_quantity' => $this->input->post('quantity'),
  'invoiceitems_unitprice' => $this->input->post('rate'),
  'invoiceitems_notes' => $this->input->post('description')
      );

 $this->db->insert('abc_invoiceitems', $data2);

print_r($data2);

Array Structure.

Array
(
    [invoice_id] => 21
    [order_id] => 1
    [invoiceitems_servicetype] => Array
        (
            [0] => Order
            [1] => Miscellaneous
            [2] => Order
        )

    [invoiceitems_quantity] => Array
        (
            [0] => 5
            [1] => 64
            [2] => 88
        )

    [invoiceitems_unitprice] => Array
        (
            [0] =>  5
            [1] =>  6
            [2] =>  8
        )

    [invoiceitems_notes] => Array
        (
            [0] => test Data1
            [1] => test Data2
            [2] => test Data3
        )

)

Insert array values to database table.

TABLE NAME --- abc_invoiceitems 
 +------------+----------+--------------------------+-----------------------+------------------------+--------------------+
 | invoice_id | order_id | invoiceitems_servicetype | invoiceitems_quantity | invoiceitems_unitprice | invoiceitems_notes |
 +------------+----------+--------------------------+-----------------------+------------------------+--------------------+

I got this following error and the error is :

the values are returning as array.

INSERT INTO abc_invoiceitems (invoice_id, order_id, invoiceitems_servicetype, invoiceitems_quantity, invoiceitems_unitprice, invoiceitems_notes) VALUES ('21', '1', Array, Array, Array, Array)

  • 写回答

2条回答 默认 最新

  • dougu1896 2013-02-05 10:23
    关注

    Fetch post values:

    $temp =count($this->input->post('type'));//counting number of row's
    $type= $this->input->post('type');
    $quantity = $this->input->post('quantity');
    $rate = $this->input->post('rate');
    $description = $this->input->post('description');
    

    Loop through Key values:

    for($i=0; $i<$temp;$i++){
      $data2 = array(
      'invoice_id' =>($id),
      'order_id' => $this->input->post('order_id'),
      'invoiceitems_servicetype' =>$type[$i],
      'invoiceitems_quantity' => $quantity[$i],
      'invoiceitems_unitprice' => $rate[$i],
      'invoiceitems_notes' => $description[$i]
          );
       $this->db->insert('abc_invoiceitems', $data2);
      }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 关于#r语言#rda分析作图的问题,请各位专家解答!
  • ¥50 找回 股票行情系统的资源问题
  • ¥15 gwas 分析-plink 检查人口分层出现下面问题
  • ¥15 关于#matlab#的问题:需要 MATLAB 运行程序,对比四个多址通信方式(TDMA,FDMA,CDMA,OFDMA)的抗噪声性能
  • ¥15 有没有复现过PFENet的,如何解决?
  • ¥15 vue3使用swiper轮播图循环失败
  • ¥15 FDMA,OFDMA,TDMA 和 CDMA 系统容量对比仿真
  • ¥15 图神经网络的入侵检测
  • ¥15 工业数据采集技术+存储架构推荐
  • ¥15 GPT-SOVITS如何训练少数民族语言支持合成语音