Jump to content

Shopping Cart Error


Drayen

Recommended Posts

Hello, I've tried doing the exercise on this site:

 

http://www.adobe.com/devnet/dreamweaver/articles/php_cart.html

 

There are three files I have:

 

Db.php

Products.php

 

and

 

Cart.php:

<?php session_start();

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)
{
	// 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("insert into cart(cookieId, itemId, client) values('" . GetCartId() . "', $itemId, '$client')") or die (mysql_error());
	$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)
{
	// Updates the quantity of an item in the users cart.
	// If the qutnaity 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($itemId);
	}
	else
	{
		mysql_query("update cart set qty = $qty where cookieId = '" . GetCartId() . "' and itemId = $itemId");
	}
}

function RemoveItem($itemId)
{
	// 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 itemId = $itemId");
}

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 items on cart.itemId = items.itemId where cart.cookieId = '" . GetCartId() . "' order by items.itemName asc");
	?>
	<html>
	<head>
	<title> Your Shopping Cart </title>
	<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>
	</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="1" color="white">
					  <b>Qty</b>
				</font>
			</td>
			<td width="55%" height="25" bgcolor="red">
				<font face="verdana" size="1" color="white">
					<b>Product</b>
				</font>
			</td>
			<td width="20%" height="25" bgcolor="red">
				<font face="verdana" size="1" color="white">
					<b>Price Each</b>
				</font>
			</td>
			<td width="10%" height="25" bgcolor="red">
				<font face="verdana" size="1" color="white">
					<b>Remove?</b>
				</font>
			</td>
		</tr>
		<?php

		while($row = mysql_fetch_array($result))
		{
			// Increment the total cost of all items
			$totalCost += ($row["qty"] * $row["itemPrice"]);
			?>
				<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>
			<?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="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>
			</form>
		</body>
		</html>
		<?php
}

?>

 

Here's the error I get:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /***/*****/users/*/*/*****/pub/www/******/******/cart.php on line 155

 

so there's a problem with $result, also a part of the other error (the other error only shows when I add something to the cart)

 

The other error I get, which is on line 45 I believe, reads: "Unknown column 'cookieId' in 'field list'" when using the die mysql_error

 

 

And here's my database (I assumed something was wrong with cookieId but it appears fine):

 

http://img227.imageshack.us/img227/8051/14374366ob8.png

 

Any help is appreciated, or even just pointing me in the right direction.. I've spent a lot of hours trying to fix something that is supposed to be just copy paste.  Thanks.

Link to comment
https://forums.phpfreaks.com/topic/104145-shopping-cart-error/
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.