Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/01/2014, 13:36
rutame
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo insertar filas en un array de session?

Hola, acabo de hacer esto, para que el carrito de la compra incremente la cantidad del mismo producto, mirándolo por $idpie y funciona añadiendo la cantidad, pero sale mal cuando es un nuevo producto.
Código PHP:
Ver original
  1. include 'conecta.php';
  2.  
  3. if(!empty($_POST['idpie'])){$idpie = $_POST['idpie'];}
  4.  
  5. $sql = mysql_query("SELECT nompie,pvp
  6.                     FROM pieza
  7.                     WHERE idpie = '$idpie' ")or die(mysql_error());
  8.  
  9. $row = mysql_fetch_array($sql);
  10.  
  11. if(!isset($_POST['cantidad'])){ $cantidad = 1;}else{$cantidad = $_POST['cantidad'];}
  12.  
  13. // Asignar valores de la fila sql a variables
  14. $nompie = $row['nompie'];
  15. $precio = $row['pvp'];
  16. $coste = $precio * $cantidad;
  17.  
  18. //Creamos la matriz asignandoselo a la variable
  19. $carrito = array();
  20.  
  21. // Añadimos las columnas de la matriz array
  22.         $carrito['idpie'] = $idpie;
  23.         $carrito['nompie'] = $nompie;
  24.         $carrito['precio'] = $precio;
  25.         $carrito['cantidad'] = $cantidad;
  26.         $carrito['coste'] = $coste;
  27.  
  28. // Comprobaciones
  29. if(!isset($_SESSION['carrito']))
  30. {
  31.     $_SESSION['carrito'] = $carrito;
  32.    
  33. }
  34. elseif(isset($_SESSION['carrito']))
  35. {
  36.     $carrito = $_SESSION['carrito'];
  37.    
  38.     //foreach ($carrito as $key => $pieza)
  39.     //{
  40.         if(in_array($idpie, $carrito))
  41.         {
  42.             $cant = $carrito['cantidad'];
  43.             echo "Cant: ".$cant;
  44.             echo "<br>";
  45.             $cant++;
  46.             $carrito['cantidad'] = $cant;
  47.             $carrito['coste'] = $cant * $carrito['precio'];
  48.             echo "<br>";
  49.             echo "IdPie: ".$carrito['idpie'];
  50.             $_SESSION['carrito'] = $carrito;
  51.         }
  52.         else
  53.         {
  54.             array_push($_SESSION['carrito'], $carrito);
  55.  
  56.         }
  57.     //}
  58. }

Aquí el volcado de var_dump();
Código PHP:
Ver original
  1. IdPie: 28VOLCADO DE LA VARIABLE ARRAY CARRITO
  2.  
  3. array (size=5)
  4.   'idpie' => string '28' (length=2)
  5.   'nompie' => string 'Muelle Helecoidal' (length=17)
  6.   'precio' => string '41.00' (length=5)
  7.   'cantidad' => int 2
  8.   'coste' => float 82
  9.  
  10. VOLCADO DE LA SESSION CARRITO
  11.  
  12. array (size=5)
  13.   'idpie' => string '28' (length=2)
  14.   'nompie' => string 'Muelle Helecoidal' (length=17)
  15.   'precio' => string '41.00' (length=5)
  16.   'cantidad' => int 2
  17.   'coste' => float 82

Con un nuevo producto:
Código HTML:
Ver original
  1. VOLCADO DE LA SESSION CARRITO
  2.  
  3. array (size=6)
  4.   'idpie' => string '28' (length=2)
  5.   'nompie' => string 'Muelle Helecoidal' (length=17)
  6.   'precio' => string '41.00' (length=5)
  7.   'cantidad' => int 2
  8.   'coste' => float 82
  9.   0 =>
  10.     array (size=5)
  11.       'idpie' => string '28' (length=2)
  12.       'nompie' => string 'Muelle Helecoidal' (length=17)
  13.       'precio' => string '41.00' (length=5)
  14.       'cantidad' => int 2
  15.       'coste' => float 82