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)
将post值保存到数组。 p>
$ data2 = 数组(
'invoice_id'=>($ id),
'order_id'=> $ this-> input-> post('order_id'),
'sensactionitems_servicetype'=> $ this- >输入 - >发布('类型'),
'invoiceitems_quantity'=> $ this->输入 - >发布('数量'),
'invoiceitems_unitprice'=> $ this-> input-> post('rate'),
'nickmentitems_notes'=> $ this-> input-> post('description')
);
$ this-> db-&gt ; insert('abc_invoiceitems',$ data2);
print_r($ data2);
code> pre>
数组结构。 p>
数组
(
[invoice_id] => 21
[order_id] => 1
[invoiceitems_servicetype] =>数组
(
[0] =>订单
[ 1] =>杂项
[2] =>订单
)
[invoiceitems_quantity] =>数组
(
[0] => 5
[1] => 64
[2] => 88
)
[发票 items_unitprice] => 数组
(
[0] => 5
[1] => 6
[2] => 8
)
[invoiceitems_notes] => 数组
(
[0] => test Data1
[1] => test Data2
[2] => test Data3
)
)
code> pre>
将数组值插入数据库表。 p>
TABLE NAME --- abc_invoiceitems
+ ----------- - + ---------- + -------------------------- + ---------- ------------- + ------------------------ + ----------- --------- +
| invoice_id | order_id | invoiceitems_servicetype | invoiceitems_quantity | invoiceitems_unitprice | invoiceitems_notes |
+ ------------ + ---------- + --------------------- ----- + ----------------------- + -------------------- ---- + -------------------- +
code> pre>
我收到以下错误并且 错误是: p>
值以数组形式返回。 p>
INSERT INTO abc_invoiceitems code>( invoice_id code>, order_id code>, invoiceitems_servicetype code>, invoiceitems_quantity code>, invoiceitems_unitprice code>, invoiceitems_notes code >)VALUES('21','1',数组,数组,数组,数组) p>
blockquote>
div>
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);
}
How about turning the arrays into serialized strings?
$data2 = array(
'invoice_id' =>($id),
'order_id' => $this->input->post('order_id'),
'invoiceitems_servicetype' => serialize($this->input->post('type')),
'invoiceitems_quantity' => serialize($this->input->post('quantity')),
'invoiceitems_unitprice' => serialize($this->input->post('rate')),
'invoiceitems_notes' => serialize($this->input->post('description'))
);
$this->db->insert('abc_invoiceitems', $data2);
When you want to pull the data back out of the database, you can unserialize the strings.