Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2017, 20:44
juandedios
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Esto me graba dos veces los mismos datos

Hola, quiero guardar el contenido de mi carrito de compra en 2 tablas: "pedidos" y "pedidos_detalles", De guardar si guarda, pero me lo guarda 2 veces, aquí les paso el modelo:
Código PHP:
Ver original
  1. public function savePedido($cli, $tot, $fec, $est)
  2. {
  3.     $this->db->trans_start();
  4.  
  5.     $dataSave = array(
  6.             'fecha'     => $fec,
  7.             'cliente'   => $cli,
  8.             'total'     => $tot,
  9.             'estado'    => $est
  10.         );
  11.     $this->db->insert('pedidos', $dataSave);
  12.  
  13.     $pedido = 0;
  14.     $this->db->select_max('codigo', 'cod_ped');
  15.     $q = $this->db->get('pedidos');
  16.     $r = $q->result();
  17.     foreach ($r as $row) {
  18.         $pedido = $row->cod_ped;
  19.     }
  20.  
  21.     $i = 1;
  22.     foreach ($this->cart->contents() as $items) {
  23.         $qty = $items['qty'];
  24.         $pro = $items['id'];
  25.  
  26.         $i = 0;
  27.         $opt = array();
  28.         foreach ($this->cart->product_options($items['rowid']) as $option_name => $option_value) {
  29.             $opt[$i] = $option_value;
  30.             $i++;
  31.         }
  32.  
  33.         $ing = $opt[0];
  34.  
  35.         $dataDeta = array(
  36.                 'pedido'        => $pedido,
  37.                 'cantidad'      => $qty,
  38.                 'producto'      => $pro,
  39.                 'ingredientes'  => $ing
  40.             );
  41.         $this->db->insert('pedidos_detalles', $dataDeta);
  42.     }
  43.  
  44.     $this->db->trans_complete();
  45.  
  46.     if ($this->db->trans_status() === false) {
  47.         return false;
  48.     } else {
  49.         return true;
  50.     }
  51. }
Espero que me puedan ayudar.

Gracias,
__________________
El aprendiz.