Jump to content
Killersites Community
greevesh

Unable to Display My Products from the DB in the DOM

Recommended Posts

Hello,

After following along and successfully completing Ben's tutorial of the Online Shopping Cart, I figured I would try and make my own. 

The first major problem I am having is being able to display my products from my database in my index.php page. The goal is to actually see the images of each product displayed in index.php (like in the tutorial). This would then enable me to add my products to the cart.php page. 

I've checked the database connection and it does exist. My guess would be that I am using the wrong syntax to display my products in the "fetch_all_products()" method. 

 

*** M_PRODUCTS.PHP ***

<?php  

class Products 
{
    private $Conn;
    private $db_table = "toys"; 

    function __construct() {
        // here we're making sure that the connection from $conn in "init.php" is transferred 
        // into our own private $conn property for usage in this object
        global $Conn; 
        $this->Conn = $Conn;
    }

        // fetches and displays all products from db
        public function fetch_all_products($id = NULL)
        { 
            if ($id = NULL)
            {
                $data = "<li>"; 
                if ($result = $this->conn->query("SELECT * FROM " . $this->db_table . " ORDER BY name"))
                {
                    if ($result->num_rows > 0)
                    {
                        while ($row = $result->fetch_array())
                        {
                            $data .= array(
                            "id" => $row["product_id"],
                            "name" => $row["name"],
                            "price" => $row["price"],
                            "image" => $row["image"]
                            ); 
                        }
                        $data .= "</li>"; 
                        return $data; 
                    }
                else 
                {
                    return "<h1>Oops... Something went wrong!</h1>"; 
                }
            }
        }
    }
}

*** INIT.PHP ***
  
  <?php

// db connection
$host = "localhost"; 
$user = "root";
$pass = "root";
$db = "cart"; 

$Conn = new mysqli($host, $user, $pass, $db); 

// error reporting 
ini_set("display_errors", 1); 
mysqli_report(MYSQLI_REPORT_ERROR); 

// constants
define("shop_name", "Tremendous Toys"); 
define("main_path", "localhost/web_apps/shopping_cart/");
define("image_path", "localhost/web_apps/shopping_cart/images/");  

// includes 
include("models/m_shopping_cart.php"); 
include("models/m_products.php"); 

// object integrations
$Shopping_Cart = new Shopping_Cart(); 
$Products = new Products();

// session initialisation
session_start(); 

*** INDEX.PHP ***
  
  <?php include("init.php") ?>

<link rel="stylesheet" href="visual/style.css" type="text/css">

<body>
    <div id="whitespace">
        <h1><?php echo shop_name ?></h1>

        <?php
        
        $Products->fetch_all_products();

        ?>
    </div>
</body>

 

cart_db.PNG

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×