Reputation: 4370
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)
Upvotes: 1
Views: 9765
Reputation: 4370
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);
}
Upvotes: 4
Reputation: 13800
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.
Upvotes: 1