Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/10/2017, 18:23
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: eliminar cantidades de items - sessiones

Pues eso ocurre porque se quiere eliminar el código,
pero la posición del array no corresponde con ese valor.

Además, el session_unset cómo bien te comentó alvaro_trewhela
se encarga de borrar todo lo que hay en el array de session,
en cuyo caso necesitas hacer uso de unset.

Propongo reescribir el código de este modo:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     if(isset($_GET['accion']))
  4.     {
  5.         if($_GET['accion'] == 'eliminar')
  6.         {
  7.             $codigo = intval($_GET['codigo']);
  8.  
  9.             if(isset($_SESSION['carrito'][$codigo]))
  10.                 unset($_SESSION['carrito'][$codigo]);
  11.         }
  12.     }
  13.  
  14.     if( sizeof($_POST) )
  15.     {
  16.         $codigo = $_POST['codigo'];
  17.         $cantidad = intval($_POST['cantidad']);
  18.      
  19.         if(!isset($_SESSION['carrito']))
  20.             $_SESSION['carrito'][$codigo] = $cantidad;
  21.         else
  22.         {
  23.             if( array_key_exists($codigo, $_SESSION['carrito']) )
  24.                 $_SESSION['carrito'][$codigo] += $cantidad;
  25.             else
  26.                 $_SESSION['carrito'][$codigo] = $cantidad;        
  27.         }
  28.     }
  29.  
  30.  
  31.     foreach(@$_SESSION['carrito'] as $codigo=>$cantidad)
  32.     {
  33. ?>
  34.         Codigo: <?php echo $codigo; ?>
  35.         Cantidad: <?php echo $cantidad; ?>
  36.         <a href='?accion=eliminar&codigo=<?php echo $codigo; ?>'>Eliminar</a>
  37.         <br>
  38. <?php
  39.     }
  40.  
  41. ?>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com