This is simple shopping cart, it's using session to carry data.
It using three different page:
1.php : Display the product & size(option list)
2.php : Use for passing data to 3.php
3.php : Display the data, iterate value using foreach().
1.php
<?
include "function.php";
connect();
session_start();
$qprod = mysql_fetch_array(mysql_query("SELECT * FROM a_prod WHERE prod_id='11'"));
$qsize = mysql_query("SELECT * FROM a_size ORDER BY size_id ASC");
echo ("
<form name=\"update\" method=\"post\" action=\"2.php?prod_id=$qprod[prod_id]&size_id=$size_id&action=add\">
Size <select name=\"size_id\">
");
while($rsize=mysql_fetch_array($qsize))
{echo ("<option value=$rsize[size_id]> $rsize[size_number] </option>");}
echo ("
</select>
<input type=\"submit\" value=\"Submit\" name=\"submit\">
</form>
");
?>
2.php
<?
include "function.php";
connect();
session_start();
$action = $_GET['action'];
$prod_id = $_SESSION['prod_id'] = $_GET['prod_id'];
$prod_id = $_SESSION['size_id'] = $_GET['size_id'];
$size_id = $_SESSION['size_id'] = htmlentities($_POST['size_id'], ENT_QUOTES);
switch($action){
case "add":
$_SESSION['cart'][$prod_id]++;
$_SESSION['cart'][$size_id]++;
break;
case "remove":
$_SESSION['cart'][$prod_id]--;
$_SESSION['cart'][$size_id]--;
break;
case "empty":
session_destroy();
break;
}
header("location:3.php");
?>
3.php
<?
include "function.php";
connect();
session_start();
$prod_id = $_SESSION['prod_id'];
//$size_id = $_SESSION['size_id'];
$c = count($_SESSION['cart']);
echo "Session Amount : ".$c."<br>";
if(!$_SESSION['cart'])
{
echo "Cart Empty!";
}else{
foreach($_SESSION['cart'] as $size_id => $q)
{
$prod = mysql_query("SELECT size_id,size_number,prod_name FROM a_size,a_prod WHERE size_id='$size_id' AND prod_id='$prod_id'");
if(mysql_num_rows($prod) > 0)
{
list($size_id, $size_number, $prod_name) = mysql_fetch_row($prod);
if($q > 0)
{
echo "Name : ".$prod_name." - "."Size : ".$size_number." - "."Qty : ".$q.
"<a href=\"2.php?prod_id=$prod_id&size_id=$size_id&action=remove\"> - </a><br>";
}
}
}
}
?>
The result on 3.php shown like this:
Session Amount : 4
Name : Fade It - Size : 40 - Qty : 3 -
Name : Fade It - Size : 42 - Qty : 2 -
Name : Fade It - Size : 41 - Qty : 1 -
But when I change the product id in 1.php & submit them, all of the product name change:
Session Amount : 4
Name : Sonar - Size : 40 - Qty : 3 -
Name : Sonar - Size : 42 - Qty : 3 -
Name : Sonar - Size : 41 - Qty : 1 -
That is my problem, I want to carry more than one value(prod_id & size_id), so the result I am expecting is like this:
Name : Fade It - Size : 40 - Qty : 2 -
Name : Berra - Size : 42 - Qty : 3 -
Name : Sonar - Size : 41 - Qty : 1 -
Some other things make me curious is these part, in 2.php:
$prod_id = $_SESSION['prod_id'] = $_GET['prod_id'];
$prod_id = $_SESSION['size_id'] = $_GET['size_id'];
If I set the second line into $size_id, it display blank page on 3.php.
Hope anyone will help me, working with foreach loops is quite complicated for me.
Sorry for long code & explanation, thanks.