0

I want to insert multiple records into my database table with a FK, but my code only inserts one line of records.

It could be that I do not count the $count. Here is my code:

Model

public function create($table,$data) { $query = $this->db->insert($table, $data); return $this->db->insert_id(); } 

Controller

public function save($id) { $id_form = $id; $id_interversion = $this->model->create('mytable1', $data); $Inicio = $_POST['Inicio']; $Termino = $_POST['Termino']; $id_tecnico = $_POST['id_tecnico']; $count = count($_POST['id_tecnico']); $data2 = array(); for ($i = 0; $i < $count; $i++) { $data2 = array( 'id_tecnico' => $id_tecnico[$i], 'horaInicio' => $Inicio[$i], 'Termino' => $Termino[$i] ); $this->model->create('mytable2', $data2); } } 

view

<?php echo form_open("controller/save/{$data->id}"); ?> <?php for ($i = 0; $i < 2; $i++) { ?> <input type="text" name="id_tecnico[]" value="" class="form-control"> <input type="text" name="Inicio[]" value="" class="form-control"> <input type="text" name="Termino[]" value="" class="form-control"> <?php } ?> <?php echo form_close(); ?> 
1
  • print_r($_POST['id_tecnico']);exit; and add output to question. Commented Jun 18, 2018 at 16:10

2 Answers 2

1

Try with insert_batch like this :

public function save($id = NULL) { $id_form = $id; //$id_interversion = $this->model->create('mytable1',$data); $id_interversion = 12; // a custom id $Inicio = $this->input->post('Inicio'); $Termino = $this->input->post('Termino'); $id_tecnico = $this->input->post('id_tecnico'); foreach ($id_tecnico as $key => $item) { $insert_data[] = array( 'id_interversion' => $id_interversion, 'id_tecnico'=> $item, 'horaInicio'=> $Inicio[$key], 'Termino'=> $Termino[$key] ); } //print_r($insert_data);die; $this->db->insert_batch('mytable2',$insert_data); } 
Sign up to request clarification or add additional context in comments.

1 Comment

Database interactions belong in the model layer, not the controller.
0

You can combine the insert values into one array and use codeigniter insert_batch method.

Heres a useful documentation https://www.codeigniter.com/userguide3/database/query_builder.html

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.