Fijate en los ejemplos que te puse ..
NO debes usar un indice tipo [0],[1][2] para datos que son del mismo "registro" .. en tal caso:
Con Count() podrías obtener el n° de elementos de una array de dichas características .. Para ese punto el array tendrías que haberla propagado ya por la sesión tal cual el ejemplo que te dejé.
Suponiendo que tengas un formulario X donde apuntas tu action al "add_producto.php" y method POST. Si usas un link poara pasar esas 3 variables a este script .. usa $_GET en lugar de $_POST:
add_producto.php Código PHP:
<?
session_start();
if (isset($_SESSION['mi_carrito'])){
$pedido=$_SESSION['mi_carrito'];
} else {
$pedido=array();
}
$indice=count($pedido)+1;
$pedido[$indice]["familia"] = $_POST['familia'];
$pedido[$indice]["referencia"] = $_POST['referencia'];
$pedido[$indice]["cantidad"] = $_POST['cantidad'];
?>
<a href="ver_carrito.php">ver carrito</a>
(fijate que DEBES!!! usar los arrays superglobales: $_POST /$_GET .. etc según el metodo que uses para enviar tus variables a tus scritps .. NO Las asumas como "globales" (cuando haces $famila)
Y para leer los datos de tu carrito .. tendrás que usar un bucle for()
ver_carrito.php Código PHP:
<?
session_start();
if (isset($_SESSION['mi_carrito'])){
$pedido=$_SESSION['mi_carrito'];
} else {
$pedido=array();
}
for ($x=0; $x<count ($pedido); $x++){
echo "Producto en carro n°: ".$x."<br>";
echo "Familia: ".$pedido[$x]['familia']."<br>";
echo "Referencia: ".$pedido[$x]['referencia']."<br>";
echo "Cantidad: ".$pedido[$x]['cantidad']."<br><br>";
}
?>
Un saludo,