• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Insertar datos en dos tablas distintas

#1
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'));
    }   
   
}
Reply

#2
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.
Reply

#3
(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.
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.