can't count for the price when select more qty!!!

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
jenny
Forum Newbie
Posts: 6
Joined: Wed May 12, 2004 10:08 am
Location: KL, Malaysia

can't count for the price when select more qty!!!

Post by jenny »

if let said i wanna display the qty that i want from the shopping cart, how i goin to do.. izzit below coding got any error? i can't count out the price when i goin to buy more qty from shopping cart.. :(


Code: Select all

<?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($style_id, $qty)
	{
		// Will check whether or not this item
		// already exists in the cart table.
		// If it does, the UpdateItem function
		// will be called instead
		
		global $dbServer, $dbUser, $dbPass, $dbName;

		// Get a connection to the database
		$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
		
		// Check if this item already exists in the users cart table
		$result = mysql_query("select count(*) from cart where CookieID = '" . GetCartID() . "' and style_id = '{$_REQUEST['style_id']}'");
		$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, style_id, qty) values('" . GetCartID() . "', $style_id, $qty)");
		}
		else
		{
			// This item already exists in the users cart,
			// we will update it instead
			
			UpdateItem($style_id, $qty);
		}
	}
	
	function UpdateItem($style_id, $qty)
	{
		// Updates the quantity of an item in the users cart.
		// If the quantity is zero, then RemoveItem will be
		// called instead

		global $dbServer, $dbUser, $dbPass, $dbName;

		// Get a connection to the database
		$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
		
		if($qty == 0)
		{
			// Remove the item from the users cart
			RemoveItem($style_id);
		}
		else
		{
			mysql_query("update cart set qty = $qty where CookieID = '" . GetCartID() . "' and style_id = $style_id");
		}
	}
	
	function RemoveItem($style_id)
	{
		// Uses an SQL delete statement to remove an item from
		// the users cart

		global $dbServer, $dbUser, $dbPass, $dbName;

		// Get a connection to the database
		$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
		
		mysql_query("delete from cart where CookieID = '" . GetCartID() . "' and style_id = $style_id");
	}
	
	function ShowCart()
	{
		// Gets each item from the cart table and display them in
		// a tabulated format, as well as a final total for the cart
		
		global $dbServer, $dbUser, $dbPass, $dbName;

		// Get a connection to the database
		$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
		
		$totalCost = 0;
		$result = mysql_query("select * from cart inner join styles on cart.style_id = styles.style_id where cart.CookieID = '" . GetCartID() . "' order by styles.style asc");
		?>
		<html>
		<head>
		<title> Shopping Cart </title>
		<script language="JavaScript">
		
			function UpdateQty(styles)
			{
				style_id = style;
				newQty = styles.options[styles.selectedIndex].text;
				
				document.location.href = 'cart.php?action=update_item&id='+style_id+'&qty='+newQty;
			}
		
		</script>
		</head>
		<body bgcolor="#ffffff">
		<h1>Your Shopping Cart</h1>
		<form name="frmCart" method="get">
		<table width="100%" cellspacing="0" cellpadding="0" border="0">
			<tr>
				<td width="15%" height="25" bgcolor="red">
					<font face="verdana" size="2" color="white">
						&nbsp;&nbsp;<b>Quantity</b>
					</font>
				</td>
				<td width="55%" height="25" bgcolor="blue">
					<font face="verdana" size="2" color="white">
						<b>Product</b>
					</font>
				</td>
				<td width="20%" height="25" bgcolor="red">
					<font face="verdana" size="2" color="white">
						<b>Price Each</b>
					</font>
				</td>
				<td width="10%" height="25" bgcolor="blue">
					<font face="verdana" size="2" color="white">
						<b>Remove Item</b>
					</font>
				</td>
			</tr>
			<?php
			
			while($row = mysql_fetch_array($result))
			{
				// Increment the total cost of all items
				$totalCost += ($row["qty"] * $row["price"]);
				?>
					<tr>
						<td width="15%" height="25">
							<font face="verdana" size="1" color="black">
								<select name="<?php echo $row["style_id"]; ?>" 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="2" color="black">
								<?php echo $row["style"]; ?>
							</font>
						</td>
						<td width="20%" height="25">
							<font face="verdana" size="2" color="black">
								$<?php echo number_format($row["price"], 2, ".", ","); ?>
							</font>
						</td>
						<td width="10%" height="25">
							<font face="verdana" size="2" color="black">
								<a href="cart.php?action=remove_item&id=<?php echo $row["style_id"]; ?>">Remove</a>
							</font>
						</td>
					</tr>
				<?php
			}
			
			// Display the total
			?>
					<tr>
						<td width="100%" colspan="4">
							<hr size="1" color="red" NOSHADE>
						</td>
					</tr>
					<tr>
						<td width="70%" colspan="2">
							<font face="verdana" size="2" color="black">
								<a href="category.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>
				</form>
                       
			</body>
			</html>
			<?php
	}
?>
Post Reply