Ayuda con carrito por favor

Hola al intentar implementar el carrito que modificaste me dio un error, puedes correjirmelo por favor :-) el erro es mio ya que el tuyo lo pobre y me funciono muy bien:
Traigo de otro formulario 3 variables las cuales debería añadir a mi carrito, este es el código:
<?php
include ("conexx.php"); // se conecta a la BD
session_start(); // inicio sesiones Se asume como global $variable.
$compra=$_SESSION['compra']; // asignamos a $variable la variable de la session áctiva.
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
// la sesion ya esta abierta y compra="si"
if (($compra)=="si"){
echo "se supone que esta autorizado", "<br>";
echo "codigo del producto: ", $cod,"<br>";
echo "nº de cuotas: ", $calculo,"<br>";
echo "valor de cada cuota: ",$resultado,"<br>";
echo "se supone que aki abajo muestra el carrito acumuladooo", "<br>";
// **************** de aki para abajo carrito webestilo ******************
if ($_POST["$cod"])
{ //comprobamos si existe algún articulo si el array itemsEnCesta no existe
if (!isset($compra))
{
$items["producto"]=$_POST["$cod"];
$items["cuotas"]=$_POST["$calculo"];
$items["resultado"]=$_POST["$resultado"];
$compra= array($items);
}
else //Si el array existe // session_register('itemsEnCesta');
{ //Recorremos su contenido, con el foreach, y si encontramos un artículo igual, añadimos la cantidad...
foreach($compra as $ind => $item_v)
{
if ($item_v["producto"]==$_POST["$cod"])
{
$itemsEnCesta[$ind]["cuotas"]+=$_POST["$calculo"];
$encontrado=1;
}
}
// Si no lo encontramos, es un nuevo artículo, por lo tanto, añadimos el nuevo producto
//con la correspondiente cantidad a itemsEnCesta
if (!$encontrado)
{
$items["producto"]=$_POST["$cod"];
$items["cuotas"]=$_POST["$calculo"];
$items["resultado"]=$_POST["$resultado"];
$compra= array($items);
}
} // cierra el else
}
// aki muestra la compra*********
if (isset($compra))
{
echo'El contenido de la cesta de la compra es:<br>';
foreach($compra as $k => $items)
{
foreach($items as $tipo => $value)
{
echo $tipo.': '.$value.' ';
}
echo "<br>";
}
}
?>
</body>
</html>
pero me da el siguiente mensaje:
Warning: Invalid argument supplied for foreach() in c:\apache\htdocs\pruebas_php\open_sess.php on line 64
en donde la linea 64 es: foreach($compra as $k => $items) {
Puedes ayudarme por favor, de antemano gracias.-
Respuesta
1
Ese error que da es porque $compra no es un array, por eso da error el foreach.
Por lo que veo al principio $compra vale "si", entonces no entra en el ! Isset($compra) por tanto se va a la parte que pone:
foreach($compra as $ind => $item_v)
yo creo que estas usando la variable $compra para 2 cosas distintas, usa 2 variables, una para ver si $compra=="si" y otra para el foreach

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas