Jump to content

Drayen

New Members
  • Posts

    4
  • Joined

  • Last visited

    Never

Posts posted by Drayen

  1. 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.

  2. Sorry if I'm wording this wrong, here's my problem:

     

    The form:

     

    <html>

    <head>

    <title>Product Update</title>

    </head>

    <body>

     

    <form action="index.php" method="get">

    Product: <input name="product" type="text" />

    Starting Price: <input name="price" type="text" />

    <br />

    Description: <input name="description" type="text" />

    <input type="submit">

    </form>

     

    </body>

    </html>

     

    Part of the php file:

     

    function add()

    {

     

    $AAA = new AAA("Product", $_GET["product"], $_GET["price"], "images/unknown.jpg", $_GET["description"]);

     

    echo '<img src="'. $AAA->GetPhoto() .'" align="left" />';

    echo '<b>'. $AAA->GetName() .'</b>: '. $AAA->GetModel();

    echo '<p>Starting from: '. $ipod->GetPrice() .'</p>';

    echo '<p>'. $AAA->GetDescription() .'</p>';

    }

     

    Basically I don't want the fucntion add to execute unless it's being triggered by coming from the form page, so how would I go about doing this? Right now I just have the function add() above and it runs but that means it runs even when I'm not coming from the form site.  Any help would be appreciated.

×
×
  • 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.