Search code examples
phpproductcart

Simple PHP Shopping Cart Quantity


I am a rookie in PHP and I'm trying to make a shopping website for a college module.

Here is my products page that lists all of the products:

//Get the category from the URL
$category = $_GET['category'];

echo("<h1>Products: $category</h1>");
echo("<FORM METHOD='LINK' ACTION='products.php'>");
echo("<INPUT TYPE='submit' VALUE='Back'>");
echo("</FORM>");
echo("<hr>");

//Include database file with settings im
require "db.inc";

//Store the connection in a variable for later use
$connection = mysql_connect($hostname, $username, $password);

//Check for connection
if(! $connection )
{
  die('Could not connect: ' . mysql_error());
}

//If the category is all then
if($category == "All")
{
    $query = "SELECT * FROM products";//Select everything
}
//If it's not then..
else
{
    $query = "SELECT * FROM products WHERE category = '$category'";
}

//Open the Database
mysql_select_db($dbname);

//Start the query
$result = mysql_query($query, $connection);

if(!$result )
{
  die('Could not retrieve data: ' . mysql_error());
}

//Loop through the rows and display each object
while($row = mysql_fetch_array($result))
{
    //Define all variables we will use
    $productid = $row['id'];
    $productname = $row['name'];
    $productdescription = $row['description'];
    $productimage = $row['image'];
    $productprice = $row['price'];
    $productstock = $row['stock'];

    //Display each product and it's info
    echo("<h3>$productname</h3>");
    echo("<a href=$productimage><img border='0' alt=$productname src=$productimage width='100' height='100'></a><br>");
    echo("$productdescription<br>");
    echo("<b>Price:</b> £$productprice (ex VAT)<br>");
    echo("<b>Stock:</b> $productstock<br>");

    //Create a link for each product, that goes to the add to cart script with the product id in the URL
    //Only if youre logged in can you see this button
    if( isset($_SESSION['login']))
    {

        echo("<FORM METHOD='POST' ACTION='process_addtocart.php?id=$productid&quantity=1'>");
        echo("<INPUT TYPE='submit' VALUE='Add to Cart'>");
        echo("</FORM>");
    }
    echo("<hr>");
}

As you can see it gets all the products from the db and adds a button that links to the addcart php file with the id and quantity to add.

Here is my add to cart function:

<?php
    //Make sure user is logged in first
    if( isset($_SESSION['login']))
    {

        //Setup our shopping cart if it isnt already setup into an array table to hold item info
        if( empty($_SESSION['shoppingcart']))
        {
            $_SESSION['shoppingcart'] = array();

        }

        $id = $_GET['id'];
        $quantitytoadd = $_GET['quantity'];

        if( isset( $_SESSION['shoppingcart'][$id]))
        {
            //CODE TO ADD TO QUANTITY????

        }

        array_push($_SESSION['shoppingcart'], $id);
        echo("Item has been added to your cart!");


    }
    else
    {
        echo("<p>Please login to add items to your shopping cart!</P>");
    }

?>

How would I make it increment a quantity value for THAT specific ID in the array table each time?

Would it be something like:

array_push($_SESSION['shoppingcart'], $id, $quantitytoadd++);

Solution

  • Or you could just increment the product by one with what you have already and make the product ids the key. Keep your inputs clean also.

    <?php
    //Make sure user is logged in first
    if( isset($_SESSION['login']))
    {
    
        //Setup our shopping cart if it isnt already setup into an array table to hold item info
        if( empty($_SESSION['shoppingcart']))
        {
            $_SESSION['shoppingcart'] = array();
    
        }
    
        $id = $_GET['id'];
        $quantitytoadd = $_GET['quantity'];
    
        if( isset( $_SESSION['shoppingcart'][$id]))
        {
            //CODE TO ADD TO QUANTITY????
             $_SESSION['shoppingcart'][$id]++;
    
        }
        else
        {
            $_SESSION['shoppingcart'][$id] = 1;
        }
        echo("Item has been added to your cart!");
    
    
    }
    else
    {
        echo("<p>Please login to add items to your shopping cart!</P>");
    }
    ?>