Place a list inside a session and show each session

I am trying to create a shopping cart style website. I can render products by setting products as a class and passing them to my shopping cart page. However, I need to keep the list of products in the session so that I can add and / or clear every item added to the cart.

products.php

<?php
require_once 'class_product.php'; 
$product = new product();

$product_id =(int)$_GET['product_id']; //get id from home page

$username = "";
$password = "";
$hostname = "";//blanked this out for public use

//connection to the database
    $dbhandle = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL");


//select a database to work with
    $selected = mysql_select_db("poti",$dbhandle)
    or die("Could not select examples");

//execute the SQL query and return records
    $result = mysql_query("SELECT * FROM products where product_id=$product_id");

    echo '<form name="form1" method="post" action="cart.php" target="bottom_right">';
    echo '<table class="Grocery-table">'; 

    while($row = mysql_fetch_array($result))

{
    $product->setProductId($row['product_id']);
    $product->setProductName($row['product_name']);
    $product->setStock($row['in_stock']);
    $product->setUnitPrice($row['unit_price']);
    $product->setUnitQuantity($row['unit_quantity']);   
}
    $_SESSION['product'] = serialize($product);

     echo "<tr><td><b>Product ID</b></td>"; 
     echo "<td>";   
     echo $product->getProductId();
     echo "</td></tr>";
     echo "<tr><td><b>Product Name</b></td>";
     echo "<td>";
     echo $product->getProductName();
     echo "</td></tr>"; 
     echo "<tr><td><b>Unit Price</b></td>";
     echo "<td>";
     echo $product->getUnitPrice();
     echo "</td></tr>"; 
     echo "<tr><td><b>Unit Quantity</b></td>";
     echo "<td>";
     echo $product->getUnitQuantity();
     echo "</td></tr>"; 
     echo "<tr><td><b>In Stock</b></td>";
     echo "<td>";
     echo $product->getStock();
     echo "</td></tr>";
     echo '<tr><td><b>Add</b></td><td><Input type="number" min="0" id="add_value" name="cart"></input>
    <Input type="hidden" id="stock_value" name="stock_value" value ='.trim($product->getStock()).'></input></td></tr>';
     echo '<tr><td></td><td><input type="submit" value="Submit" onclick="return numCheck()"></td></tr>';

    echo "</table>"; 
    echo "</form>";
?>

      

cart.php

<?php
session_start();
?>
<html>

<style type="text/css">
</style>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Grocery Store</title>
</head>
<body>
<h2>Cart</h2>

<?php 
require_once 'class_product.php'; 

$product = unserialize($_SESSION['product']);
 //this allows me to see the information when i click submit
echo $product->getProductName();
echo $product->getProductId();
echo $product->getStock();
echo $product->getUnitPrice();
echo $_POST['cart'];
?>

</body>
</html>

      

How do I put the following $ product-> getProductName () and so on in the session, which allows me to display all the products that I have added to my cart.

+3


source to share


1 answer


Try it,

    session_start();
    $_SESSION['ProductName'] = $product->getProductName();
    $_SESSION['ProductId'] = $product->getProductId();
    $_SESSION['Stock'] = $product->getStock();
    $_SESSION['UnitPrice'] = $product->getUnitPrice();

      



For multiple products, you may need to use an array of sessions.

 <?php
 session_start();
 if(!isSet($_SESSION['cart_items']))
 {
    $_SESSION['cart_items'] = array();
 }

$items =$product->getProductName()."|".$product->getProductId()."|".$product-
>getStock()."|".$product->getUnitPrice();

array_push($_SESSION['cart_items'],$items);  

echo $_SESSION['cart_items'][0]; //First Product
echo "<br>";
echo $_SESSION['cart_items'][1]; //Second Product



?>

      

+1


source







All Articles