Vale, revisando el código me he dado cuenta de un error. No se puede hacer así, porque pasas los datos por SESSION. Si te das cuentas, en SESSION sólo se van a quedar los datos (id, nombre y precio) del último producto del bucle, ya que los machacas.
Lo que tendrás que hacer es pasar un array con cada conjunto de datos, es decir, un array para id, otro para nombre y otro para precio. Usando la misma idea del array que se monta automático para cantidad. Algo así:
Código PHP:
Ver original<?php
?>
<div class="producto">
<form action="agregar_producto.php" method="post">
<img src="IMAGENES DE SELECCION/editadas/IMG_3482.JPG" height="127" align="left"/>
<?php
$nombres = array(); // Esto crea un array vacío. echo "<h1>" .$row['nom_prod'], "</h1>";
$nombres[] = $row['nom_prod']; // Esto añade en la siguiente posición del array.
?>
<p> Es una secreción de las glándulas hipofaríngeas de las abejas nodrizas. Todas las larvas son alimentadas con jalea real los tres primeros días de su vida, a partir de esa fecha únicamente la larva elegida reina se alimentará con ella, mientras que las abejas obreras dispondrán de una mezcla de polen, agua y miel. </p>
Cantidad: <input name="cantidad[]" type="text" id="cantidad" size="2"/>
<?php
echo "# ID: " .$row['id_prod'], ", ";
$ids[] = $row['id_prod'];
echo "Precio: " .$row['precio_prod'], " ";
$precios[] = $row['precio_prod'];
}
// Al final del bucle, los arrays se habrán llenado de datos y los guardas en la sesión:
$_SESSION["nombres"] = $nombres;
$_SESSION["ids"] = $ids;
$_SESSION["precios"] = $precios;
?>
<input type="submit" value="Añadir al Carro" />
<img src='images/carro_anadir.gif' />
</form>
</div>
De esta forma en el PHP en el que trates el formulario tendrás 4 arrays:
Código PHP:
Ver original$ids = $_SESSION("ids");
$nombres = $_SESSION("nombres");
$precios = $_SESSION("precios");
$cantidades = $_POST("cantidad");
Y puedes poner un bucle tal que así:
Código PHP:
Ver originalfor ($i = 0; $i < count($ids); $i++) { echo "ID: " . $ids[$i];
echo "Nombre: " . $nombres[$i];
echo "Precio: " . $precio[$i];
echo "Cantidad: " . $cantidades[$i];
}
Ahora sí, un saludo.