Jump to content

How to display database data to a table


Agreaves

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;
}
?>

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.