I've redesigned it... what do you suckaz think:
Code: Select all
<?php
session_start();
$id=$_GET['id'];
//ADD
if ($_GET['action'] == 'add'){
//OPTIONS (options are in the format "optionname.additionalprice")
$style_string=$_POST['stilo'];
if ($style_string==''){
$style_string='stock.0';
}
//MAKE ARRAY IF DOESNT EXIST
if(!isset($_SESSION['cart'])){
$_SESSION['cart']=array();
}
//MAKE & POPULATE ITEM ARRAY
$next=count($_SESSION['cart']);
$_SESSION['cart'][$next]=array();
$_SESSION['cart'][$next]['id']=$id;
$_SESSION['cart'][$next]['style']=$style_string;
}
//DELETE
if ($_GET['action'] == 'delete'){
unset($_SESSION['cart'][$_GET['number']]);
sort($_SESSION['cart']);
}
//ADD QTY
if ($_GET['action'] == 'add_qty'){
$_SESSION['cart'][$_GET['number']]['qty']++;
}
//SUBTRACT QTY
if ($_GET['action'] == 'subtract'){
//delete or subtract one
if ($_SESSION['cart'][$_GET['number']]['qty']==1){
unset($_SESSION['cart'][$_GET['number']]);
array_merge($_SESSION['cart']);
} else {
$_SESSION['cart'][$_GET['number']]['qty']--;
}
}
//MERGE, COUNT
array_merge($_SESSION['cart']);
$item_count=count($_SESSION['cart']);
//CHECK FOR EMPTY CART
if (empty($_SESSION['cart'])){
$nothing='nothing';
} else {
$cart_count=0;
while ($item_count > $cart_count){
//set QTY if empty
if (empty($_SESSION['cart'][$cart_count]['qty'])){
$_SESSION['cart'][$cart_count]['qty']=1;
}
//fetch attributes
$con = mysql_connect('XXX', 'XXX', 'XXX') or die(mysql_error());
mysql_select_db('items') or die(mysql_error());
$query_id=mysql_real_escape_string($_SESSION['cart'][$cart_count]['id'],$con);
$query = "SELECT * FROM items WHERE id='$query_id'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$_SESSION['cart'][$cart_count]['baseprice']=$row['price'];
$_SESSION['cart'][$cart_count]['name']=$row['name'];
$_SESSION['cart'][$cart_count]['image']=$row['image'];
$_SESSION['cart'][$cart_count]['link']='/shop/'.$row['cat'].'/'.$row['subcat'].'?id='.$row['id'];
//calculate full price with options included
$exploded_options=explode('.',$_SESSION['cart'][$cart_count]['style']);
$name=$exploded_options[0];
$add=$exploded_options[1];
$_SESSION['cart'][$cart_count]['opt1']=$name;
$_SESSION['cart'][$cart_count]['add1']=$add;
$_SESSION['cart'][$cart_count]['fullprice']=($_SESSION['cart'][$cart_count]['baseprice']+$add);
}
$cart_count++;
}
}
header("back to cart");
?>