El indice empieza en 0 en el archivo otromas.php, aqui:
Código PHP:
<?php
if(isset($_GET['producto']))
$_SESSION['prod'] = $_GET['producto'];
function revisar_cantidad(){
global $cantidad;
global $embolsado;
global $valor;
global $unidad;
global $total;
if (!isset($_SESSION['id_art']))
$_SESSION['id_art'] = 0;
if (!isset($_SESSION[$_SESSION['id_art']]))
$_SESSION[$_SESSION['id_art']] = array();
luego cuando el cliente acepta el artículo lo que hace es irse al archivo agregar.php y le inserta los valores al array, aqui:
Código PHP:
<?php
session_start();
if (!isset($_POST["embolsado"]))
$embol = 0;
else
$embol = $_POST["embolsado"];
for($i=0; $i<=$_SESSION['id_art']; $i++)
if($i == $_SESSION['id_art']){
$_SESSION[$i] = array(
'embolsado' => $embol,
'item' => $_SESSION['id_art']+1,
'cantidad' => $_POST['cantidad'],
'nombre' => $_POST['articulo'],
'precio' => $_POST['precio']
);
}
echo $_SESSION[$_SESSION['id_art']]['nombre']; //aqui compruebo que hasta
//este momento el array tiene su valor correcto en el índice correcto
$_SESSION['id_art']++;
header("Location:productos.php?".SID);
?>
Pero cuando quiero imprimir en pantalla con mi_carrito.php ahi es donde viene el problema, que no encuentra nada en el índice, aqui:
Código PHP:
for($i=0; $i < $_SESSION['id_art']; $i++){
echo "<tr>";
echo "<td>";
echo $_SESSION[$i]['item'];
echo "</td>";
echo "<td>";
echo $_SESSION[$i]['nombre'];
echo "</td>";
echo "<td>";
if($_SESSION[$i]['embolsado'] == 1)
$resp = "SI";
else
$resp = "NO";
echo $resp;
echo "</td>";
echo "<td>";
echo $_SESSION[$i]['cantidad'];
echo "</td>";
echo "<td>";
echo $_SESSION[$i]['precio'];
echo "</td>";
echo "<td>";
echo '<a href="eliminar.php?id=' .$i. '">Eliminar</a>';
echo "</td>";
echo "</tr>";
}
Sé que es mucho código pero te lo he intentado resumir en esta respuesta, saludos