Hola a todos...
Su ayuda me salvara mas dias de tortura.
Bien, hace poco que intento programar en PHP y he empezado a hacer un carrito de compras que tal vez muchos ya han visto debido a que viene de unos videotutoriales. La verdad me ha dado muchos problemas debido a que alli se trabaja con php4 y yo trabajo con php5.
El asunto es que cuando selecciono un libro para colocarlo en el carrito va bien pero cuando le doy al boton salvar cambios me sale este error:
Cita: Warning: Invalid argument supplied for foreach() in "C....show_cart.php" on line 30
Aqui esta el codigo de mi archivo show_cart.php
Código php:
Ver original<?php
include ('book_sc_fns.php');
"arroba" $new=$_GET["new"];
$cart=$_SESSION["cart"];
if($new)
{
{
$_SESSION["items"] = 0;
$_SESSION["total_price"] = "0.00";
}
if($cart[$new])
$cart[$new]++;
else
$cart[$new] = 1;
$total_price = calculate_price($cart);
$items = calculate_items($cart);
}
if(isset($_POST["save"])) {
foreach ($cart as $isbn => $qty)
{
if($$isbn=="0")
else
$cart[$isbn] = $$isbn;
}
$total_price = calculate_price($cart);
$items = calculate_items($cart);
}
do_html_header("Tu carro de compra");
display_cart($cart);
else
{
echo "<p>No hay artículos en tu carro";
echo "<hr>";
}
$target = "index.php";
if($new)
{
$details = get_book_details($new);
if($details["catid"])
$target = "show_cat.php?catid=".$details["catid"];
}
// display_button($target, "continue-shopping", "Continue Shopping");
// $path = $_SERVER["PHP_SELF"];
// $path = str_replace("show_cart.php", "", $path);
display_button(" ".$_SERVER["SERVER_NAME"].$path."checkout.php", "go-to-checkout", "Go To Checkout");
do_html_footer();
?>
Aqui estan las funciones calculate_price y calculate_items
Código php:
Ver originalfunction get_book_details($isbn)
{
if (!$isbn || $isbn=="")
return false;
$conn = db_connect();
$query = "select * from books where isbn='$isbn'";
if (!$result)
return false;
return $result;
}
function calculate_price($cart)
{
$price = 0.0;
{
$conn = db_connect();
foreach($cart as $isbn => $qty)
{
$query = "select price from books where isbn='$isbn'";
if ($result)
{
$price +=$item_price*$qty;
}
}
}
return $price;
}
function calculate_items($cart)
{
$items = 0;
{
foreach($cart as $isbn => $qty)
{
$items += $qty;
}
}
return $items;
}
Me disculpan si existe redundancia alguna en el codigo puesto que estoy tratando de readaptarlo y en realidad no se mucho.
Les agradezco mucho su colaboracion...