Jump to content

Whats wrong here


menios

Recommended Posts

This is the Code for my cart.All works fine but one details spoils everything and i can't figure the mistake.When a new item is added to the cart there are 2 buttons next to it add and remove.All fine here but when i try to add a second item in the cart the add and remove buttons appear but my add button actually works as a remove.

Any suggestions on what i m doing wrong?

This is my functions

[hr]<?php
function writeShoppingCart() {
$cart = $_SESSION['cart'];
if (!$cart) {
	return '<p>Your Cart is Empty</p>';
} else {
	// Parse the cart session variable
	$items = explode(',',$cart);
	$s = (count($items) > 1) ? 's':'';
	return '<p>Your Cart contains <a href="cart.php">'.count($items).' book'.$s.' </a></p>';
}
}

function showCart() {
global $db;
$cart = $_SESSION['cart'];
if ($cart) {
	$items = explode(',',$cart);
	$contents = array();
	foreach ($items as $item) {
		$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
	}
	$output[] = '<form action="cart.php?action=update" method="post" id="cart">';
	$output[] = '<table  border="0">';
	$output[] = '<tr>';
	$output[] = '<th bgcolor=#62aac4><strong>Book</strong></th>';
	$output[] = '<th bgcolor=#62aac4>Price</th>';
	$output[] = '<th bgcolor=#62aac4>Quantity</th>';
	$output[] = '<th bgcolor=#62aac4 colspan=3> </th>';

	$output[] = '</tr>';
	foreach ($contents as $pd_id=>$qty) {
		$sql = 'SELECT * FROM tbl_product WHERE pd_id = '.$pd_id;
		$result = $db->query($sql);
		$row = $result->fetch();
		extract($row);
		$output[] = '<tr>';
					$output[] = '<td align=center><strong>'.$pd_name.'</strong></td>';
		$output[] = '<td align=center>£'.$pd_price.'</td>';
		$output[] = '<td align=right ><input type="text" name="qty'.$pd_id.'" value="'.$qty.'" size="3" maxlength="3" /></td>';
		$output[] = '<td align=right><i>£'.($pd_price * $qty).'</i></td>';
		$total += $pd_price * $qty;
		$output[] = '<td align=center><button type="submit">Add</button></td>';
		$output[] = '</form>';
		$output[] = '<form action="cart.php?action=delete&pd_id='.$pd_id.'" method="post" id="cart">';
		$output[] = '<td align=center><button type="submit" class="r">Remove</button></td>';
		$output[] = '</tr>';
	}
	$output[] = '</table>';
	$output[] = '<p><pre><strong><i>                             Total: <big></i>£'.$total.'</strong></big></pre></p>';

	$output[] = '</form>';
	$output[] = '<pre>                                <a href="testform/forma.php" target="_top">Checkout</a></pre>';
} else {
	$output[] = '<p>Your Cart is empty.</p>';
}
return join('',$output);
}
?>

And this is the cart

[hr]<?php
// Include MySQL class
require_once('inc/mysql.class.php');
// Include database connection
require_once('inc/cartcon.php');
// Include functions
require_once('inc/functions.inc.php');
// Start the session
session_start();
// Process actions
$cart = $_SESSION['cart'];
$action = $_GET['action'];
switch ($action) {
case 'add':
	if ($cart) {
		$cart .= ','.$_GET['pd_id'];
	} else {
		$cart = $_GET['pd_id'];
	}
	break;
case 'delete':
	if ($cart) {
		$items = explode(',',$cart);
		$newcart = '';
		foreach ($items as $item) {
			if ($_GET['pd_id'] != $item) {
				if ($newcart != '') {
					$newcart .= ','.$item;
				} else {
					$newcart = $item;
				}
			}
		}
		$cart = $newcart;
	}
	break;
case 'update':
if ($cart) {
	$newcart = '';
	foreach ($_POST as $key=>$value) {
		if (stristr($key,'qty')) {
			$pd_id = str_replace('qty','',$key);
			$items = ($newcart != '') ? explode(',',$newcart) : explode(',',$cart);
			$newcart = '';
			foreach ($items as $item) {
				if ($id != $item) {
					if ($newcart != '') {
						$newcart .= ','.$item;
					} else {
						$newcart = $item;
					}
				}
			}
			for ($i=1;$i<=$value;$i++) {
				if ($newcart != '') {
					$newcart .= ','.$pd_id;
				} else {
					$newcart = $pd_id;
				}
			}
		}
	}
}
$cart = $newcart;
break;
}
$_SESSION['cart'] = $cart;
?>
<html>
<head>
<title></title>
<link rel="stylesheet" href="css/styles.css">
</head>

<body>

<div id="contents">
<h1>Your Shopping Cart</h1>
<?php
echo writeShoppingCart();
echo showCart();
?>
<p><a href="iframe.html" target="display">Continue Shopping</a></p>

</div>

</body>
</html>

Link to comment
https://forums.phpfreaks.com/topic/80900-whats-wrong-here/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.