How can I create a CI batch insert array which is like
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
from my normal array which is
Array
(
[0] => Array
(
[track_id] =>
[camp_id] => 1
[field_name] => email_title
[field_value] => sample
)
[1] => Array
(
[track_id] =>
[camp_id] => 1
[field_name] => email_date
[field_value] => 2013-07-02
)
[2] => Array
(
[track_id] =>
[camp_id] => 1
[field_name] => email_template
[field_value] => 2
)
)
Try this:
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
$this->db->insert_batch('mytable', $data);
For more information, read here
This is your data
At Controller
$dataForDb[0]['track_id']=$data['track_id'];
$dataForDb[0]['camp_id']=$data['camp_id'];
$dataForDb[0]['field_name']=$data['field_name'];
$dataForDb[0]['field_value']=$data['field_value'];
$dataForDb[1]['track_id']=$data['track_id'];
$dataForDb[1]['camp_id']=$data['camp_id'];
$dataForDb[1]['field_name']=$data['field_name'];
$dataForDb[1]['field_value']=$data['field_value'];
$dataForDb[2]['track_id']=$data['track_id'];
$dataForDb[2]['camp_id']=$data['camp_id'];
$dataForDb[2]['field_name']=$data['field_name'];
$dataForDb[2]['field_value']=$data['field_value'];
$fid=$this->model_modelName->functionName($dataForDb);
And insert data as batch insert
At Model
$this->db->insert_batch($table, $data);
Thanks
Your array is ok. Just put your array into a variable like
$data=array();//put your array
and then
$this->db->insert_batch('yourTable', $data);
Please let me know if you face any problem.
your normal array structure matchs with the array stucture of batch insert..
so just use batch insert query to insert the data.
$this->db->insert_batch('yourTable', $data);
$data is your normal array.