Jump to content

Recommended Posts

I'll give you the correct table, but.... you have to know that I don't like this  :(

You have to learn every day, step by step.

You don't need to use extract() in this particular case.

/* Create a table to hold the data */
echo "<table width='1024' border='0' align='center' cellpadding='25' cellspacing='0' class='main_bdr'>";

echo "<tr><th>ID</th><th>Name</th><th>Cat</th><th>Description</th><th>Price</th><th>Pix</th></tr>";
/*Run a loop to retrieve all rows from the database */
while ($rows = mysqli_fetch_assoc($result)) {
/* Extract all rows of data from the result */

//extract($rows);

echo "<tr>";

echo "<td> {$rows['Id']}</td>
      <td> {$rows['Name']}</td>
      <td> {$rows['Cat']}</td>
      <td> {$rows['Description']}</td>
      <td> {$rows['Price']}</td>
      <td width='150' align='center'><img src='{$rows['Pix']}' width='150' height='150' /></td>
      ";

echo "</tr>";

}
echo "</table>";

I created this simple shopping cart system but the after running the query the program wont show the result in the table, what amI doin wrong?


<?php
// Product Id from URL
$product_id = $_GET['Id'];
// Action from URL 
$action = $_GET['action'];

//if there is an product_id and that product_id doesn't exist display an error message
if($product_id && !productExists($product_id)) {
    die("Error. Product Doesn't Exist");
}

switch($action) { //decide what to do 

    case "add":
         $_SESSION['cart'][$product_id]++; //add one to the quantity of the product with id $product_id 
    break;

    case "remove":
         $_SESSION['cart'][$product_id]--; //remove one from the quantity of the product with id $product_id 
        if($_SESSION['cart'][$product_id] == 0) unset($_SESSION['cart'][$product_id]); //if the quantity is zero, remove it completely (using the 'unset' function) - otherwise it will show zero, then -1, -2 etc when the user keeps removing items. 
    break;

    case "empty":
        unset($_SESSION['cart']); //unset the whole cart, i.e. empty the cart. 
    break;

}
?>
<?php 

if($_SESSION['cart']) { //if the cart isn't empty
//show the cart

    echo "<table border=\"1\" padding=\"3\" width=\"40%\">"; //format the cart using a HTML table

    //iterate through the cart, the $product_id is the key and $quantity is the value
     foreach($_SESSION['cart'] as $product_id => $quantity) { 

        //get the name, description and price from the database - this will depend on your database implementation.
        //use sprintf to make sure that $product_id is inserted into the query as a number - to prevent SQL injection
         $sql = sprintf("SELECT Name, Description, Price FROM products WHERE Id = %d;", $product_id);

        $result = mysqli_query($con,$sql) or die("couldnt run query");

	$row = mysqli_num_rows($result);

	$row2 = mysqli_fetch_assoc($result);

	$name = $row2['Name'];
	$description = $row2['Description'];
	$price = $row2['Price'];

        //Only display the row if there is a product (though there should always be as we have already checked)
         if($row > 0) {

            list($name, $description, $price) = mysqli_fetch_row($result);

            $line_cost = $price * $quantity; //work out the line cost
             $total = $total + $line_cost; //add to the total cost

            echo "<tr>";
             //show this information in table cells
             echo "<td align=\"center\">$name</td>";
             //along with a 'remove' link next to the quantity - which links to this page, but with an action of remove, and the id of the current product
             echo "<td align=\"center\">$quantity <a href=\"$_SERVER[php_SELF]?action=remove&id=$product_id\">X</a></td>";
            echo "<td align=\"center\">$line_cost</td>";

            echo "</tr>";

        }

    }

    //show the total
     echo "<tr>";
    echo "<td colspan=\"2\" align=\"right\">Total</td>";
    echo "<td align=\"right\">$total</td>";
    echo "</tr>";

    //show the empty cart link - which links to this page, but with an action of empty. A simple bit of javascript in the onlick event of the link asks the user for confirmation
     echo "<tr>";
    echo "<td colspan=\"3\" align=\"right\"><a href=\"$_SERVER[php_SELF]?action=empty\" onclick=\"return confirm('Are you sure?');\">Empty Cart</a></td>";
    echo "</tr>"; 
    echo "</table>";



}else{
//otherwise tell the user they have no items in their cart
     echo "You have no items in your shopping cart.";

}
//function to check if a product exists
function productExists($product_id) {
		//use sprintf to make sure that $product_id is inserted into the query as a number - to prevent SQL injection
		$sql = sprintf("SELECT * FROM php_shop_products WHERE id = %d;",
						$product_id); 

		return mysql_num_rows(mysql_query($sql)) > 0;
}
?>

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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