So I have my cart set up to receive specific information about each item added, using the GET function. However in the implementation of reading the database, the values will simply become the same if you add in another item. If i add chair 1, then chair 1 again, it adds to chair 1’s total count saying there are 2 chair 1’s. But if I then add chair 2, there will be a new entry but with all the values of chair one.
array output
Array ( [0] => Array ( [item_id] => 2 [quantity] => 1 ) [1] => Array ( [item_id] => 4 [quantity] => 7 ) )
the item page :
[php]<?php
include_once(‘config/database.php’);
include_once(‘object/chair.php’);
$database = new Database();
$conn = $database->getConnection();
$chair = new Chair($conn);
$chair->id = $_GET[‘detailsid’];
$stmt = $chair->readDetails();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
?>[/php]
Add to cart:
Cart fucntion:
[php]
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errrors', '1');
include_once 'includes/db_conx.php';
if (isset($_POST['pid']))
{
$pid = $_POST['pid'];
$wasFound = false;
$i = 0;
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)
{
$_SESSION["cart_array"] = array(1 => array("item_id" => $pid, "quantity" => 1));
}
else
{
foreach ($_SESSION["cart_array"] as $each_item)
{
$i++;
while (list($key, $value) = each($each_item))
{
if ($key == "item_id" && $value == $pid)
{
array_splice($_SESSION["cart_array"], $i - 1, 1, array(array("item_id" => $pid, "quantity" => $each_item['quantity'] + 1)));
$wasFound = true;
}
}
}
if ($wasFound == false)
{
array_push($_SESSION["cart_array"], array("item_id" => $pid, "quantity" => 1));
}
}
}
if (isset($_GET['cmd']) && $_GET['cmd'] == "emptycart")
{
unset($_SESSION["cart_array"]);
}
//render cart
$cartOutput = "";
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)
{
$cartOutput = "
Your shopping cart is empty
";
}
else
{
$i = 0;
foreach ($_SESSION["cart_array"] as $each_item)
{
$i++;
$item_id = $each_item['item_id'];
include_once('config/database.php');
include_once('object/chair.php');
$database = new Database();
$conn = $database->getConnection();
$chair = new Chair($conn);
$chair->id = $_GET['detailsid'];
$stmt = $chair->readDetails();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$product_name = $row['chair_name'];
$price = $row['PRICE'];
}
$pricetotal = $price * $each_item['quantity'];
$cartOutput .="
";
$cartOutput .= "" . $product_name . " | ";
$cartOutput .= "" . $price . " | ";
$cartOutput .= "" . $each_item['quantity'] . " | ";
$cartOutput .= "" . $pricetotal . " | ";
$cartOutput .= "X | ";
$cartOutput .="
";
}
}[/php]