Jump to content

showcart function... quantity not updated!


zizzy80

Recommended Posts

Hi, I'm building a little showcart function but for some reason,

my cart is not being updated..

 

If you click on add items, it will not show anything on the cart.

I've been diggin the codes for hours and not arriving at any solutions..  ???

 

 

getCartId function here.

	function GetCartId() {
	// This function will generate an encrypted string and
	// will set it as a cookie using set_cookie. This will
	// also be used as the cookieId field in the cart table

	if(isset($_COOKIE["cartId"])) {
		return $_COOKIE["cartId"];
	}
	else {
	// There is no cookie set. We will set the cookie
	// and return the value of the users session ID

		session_start();
		setcookie("cartId", session_id(), time() + ((3600 * 24) * 30));
		return session_id();
	}
}

cart.php code here.

<?php

include("db.php");

switch($_GET["action"]) {
	case "add_item": {
		AddItem($_GET["id"], $_GET["qty"]);
		ShowCart();
		break;
	}
	case "update_item": {
		UpdateItem($_GET["id"], $_GET["qty"]);
		ShowCart();
		break;
	}
	case "remove_item": {
		RemoveItem($_GET["id"]);
		ShowCart();
		break;
	}
	default: {
		ShowCart();
	}
}

function AddItem($itemId, $qty) {	

	$result = @mysql_query("select count(*) from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId");

	$row = @mysql_fetch_row($result);
	$numRows = $row[0];

	if($numRows == 0) {
	// This item doesn't exist in the users cart,
	// we will add it with an insert query

		@mysql_query("insert into cart(cookieId, itemId, qty) values('" . GetCartId() . "', $itemId, $qty)");
	}
	else {
	// This item already exists in the users cart,
	// we will update it instead

		UpdateItem($itemId, $qty);
	}
}

function UpdateItem($itemId, $qty) {

	@mysql_query("update cart set qty = $qty where cookieId = '" . GetCartId() . "' and itemId = $itemId");
}


function RemoveItem($itemId) {

	@mysql_query("delete from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId");
}

function ShowCart() {

	$result = @mysql_query("select * from cart inner join items on cart.itemId = items.itemId where cart.cookieId = '" . GetCartId() . "' order by items.itemName asc");

	while($row = @mysql_fetch_array($result)) {

		// Increment the total cost of all items
		$totalCost += ($row["qty"] * $row["itemPrice"]);
		?>
		<table>
		<tr>
		<td width="15%" height="25">
		<font face="verdana" size="1" color="black">
		<select name="<?php echo $row["itemId"]; ?>" onChange="UpdateQty(this)">

		<?php

			for($i = 1; $i <= 20; $i++) {

				echo "<option ";

				if($row["qty"] == $i) {
					echo " SELECTED ";
				}

				echo ">" . $i . "</option>";
			}
		?>
		</select>
		</font>
		</td>

		<td width="55%" height="25">
			<font face="verdana" size="1" color="black">
			<?php echo $row["itemName"]; ?>
			</font>
		</td>

		<td width="20%" height="25">
			<font face="verdana" size="1" color="black">
			<?php echo number_format($row["itemPrice"], 2, ".", ","); ?>
			</font>
		</td>

		<td width="10%" height="25">
			<font face="verdana" size="1" color="black">
			<a href="cart.php?action=remove_item&id=<?php echo $row["itemId"]; ?>">Remove</a>
			</font>
		</td>
		</tr>
		</table>
		<?php
	} ?>
	<select name="<?php echo $row["itemId"]; ?>" onChange="UpdateQty(this)">

		<?php
			for($i = 1; $i <= 20; $i++) {

				echo "<option ";

					if($row["qty"] == $i) {
						echo " SELECTED ";
					}

				echo ">" . $i . "</option>";
			} // end for loop
		?>
	</select>

	<script language="JavaScript">

	function UpdateQty(item) {
		itemId = item.name;
		newQty = item.options[item.selectedIndex].text;

		document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
	}

	</script>
	<table>
	<tr style="background: red;">
		<td width="30%" height="25">
		<h3>Product</h3>
		</td>
		<td width="10%" height="25">
		<h3>Price</h3>
		</td>
		<td width="50%" height="25">
		<h3>Description</h3>	
		</td>
		<td width="10%" height="25">
		<h3>Add</h3>
		</td>
	</tr>
	<tr>
	<td width="100%" colspan="4">
	<hr size="1" color="red" NOSHADE>
	</td>
	</tr>
	<tr>
	<td width="70%" colspan="2">
	<font face="verdana" size="1" color="black">
	<a href="products.php"><< Keep Shopping</a>
	</font>
	</td>
	<td width="30%" colspan="2">
	<font face="verdana" size="2" color="black">
	<b>Total: $<?php echo number_format($totalCost, 2, ".", ","); ?></b>
	</font>
	</td>
	</tr>
	</table>

<?php 
} 
?>

Link to comment
https://forums.phpfreaks.com/topic/80853-showcart-function-quantity-not-updated/
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.