CodeIgniter Forums
Insertar datos en dos tablas distintas - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: General (https://forum.codeigniter.com/forumdisplay.php?fid=1)
+--- Forum: Regional User Groups (https://forum.codeigniter.com/forumdisplay.php?fid=25)
+--- Thread: Insertar datos en dos tablas distintas (/showthread.php?tid=75576)



Insertar datos en dos tablas distintas - sergi - 02-23-2020

Hola,

no se como insertar datos en dos tablas distintas. 

Gracias

MODELO

Code:
public function insertar($data)
    {
        $this->db->insert('despesa',$data);                  
        $insert_id = $this->db->insert_id();
        return $insert_id;
}

Code:
public function insertarDespesa(){       
        $idproveidor= $this->input->post('idpersona');
        $idusuari=$this->input->$_SESSION('idusuari');
        $tipus_comprovant= $this->input->post('tipus_comprovant');
        $num_comprovant= $this->input->post('num_comprovant');
        $data_hora= $this->input->post('data_hora');
        $total_despesa= $this->input->post('total_despesa');

        $idarticle=$this->input->post('idarticle');
        $quantitat=$this->input->post('quantitat');
        $preu_compra=$this->input->post('preu_compra');
        $descompte = $this->input->post('descompte');

           
       
        $data = array(           
                                    
            'idproveidor'=>$idproveidor,
            'idusuari' => $idusuari,
            'tipus_comprovant'=> $tipus_comprovant,
            'num_comprovant'=> $num_comprovant,
            'data_hora'=> $data_hora,
            'total_despesa'=> $total_despesa,
           
            //'idarticle'=> $idarticle,
            'quantitat' => $quantitat,
            'preu_compra' => $preu_compra,
            'descompte' => $descompte,

        );

        $ins = $this->Despesa_model->insertar($data);

       
       
        if($ins){
            $this->session->set_flashdata('success','Despesa insertada corectament');
        }else{
            $this->session->set_flashdata('error','Despesa no insertada');
        }
        redirect(base_url('Despesa/novaDespesa'));
    }   
   
}



RE: Insertar datos en dos tablas distintas - sistemas - 07-17-2020

Hola compañero, un gusto saludar.

Yo también hablo español, por si aún te sirve:

  1. Creas una transacción
  2. Adentro de la transacción pones ambos queries con "insert"
  3. Si la transacción falla entonces haces un "rollback"
Yo he hecho eso y me ha funcionado muy bien, incluso puedes hacer múltiples inserciones y no hay preocupación ya que si una falla entonces se hace un rollback general y no pasa nada.


RE: Insertar datos en dos tablas distintas - Omar Crespo - 09-10-2020

(02-23-2020, 12:48 PM)sergi Wrote: Hola,

no se como insertar datos en dos tablas distintas. 

Gracias

Hola, saludos desde Cuba. Según tu código solo usas la tabla despesa. Como no se cual es la idea te pongo un ejemplo propio. Digamos que quieres insertar datos de una persona en la tabla 'persona' y generar trazas sobre esta operacion en la tabla 'trazas'. En el modelo:

Code:
public function insertar(){

$nombre =  $this->input->post('nombre');

$data = array(
'nombre' => $nombre,
'edad' => $this->input->post('edad')
);

$this->db->insert('persona', $data);

$logs = array(
'usuario' => $this->session->userdata('usuario'),
'operacion' => "ha insertado a",
'nombre' => $nombre,
);

$this->db->insert('trazas', $logs);

}

En el controlador llamamos a la funcion así:

$this->modelo->insertar();

Y listo, así se inserta información en dos tablas distintas simultáneamente.