teejayy1013 Posted December 4, 2008 Share Posted December 4, 2008 hey guys, I've been trying to get a shopping cart going and I'm having issues deleting items from it ONLY when the quantity of the item in the shopping cart is 1. If the quantity is 2+, it successfully deletes an item and decreases the quantity in the cart. Here is my code: <?session_start(); if(isset($_POST['submittedFormTest'])){ if(isset($_POST['deleteCart'])){ deleteFromCart(); } updateCart(); displayCart(); displayCheckOut(); }else{ displayCart(); displayCheckOut(); } function updateCart(){ global $movieID; global $quantity; $movieID=$_POST['movieID']; //query the database, delete 1 movie from available column. $dbc= mysqli_connect() OR die ('Could not connect to MySQL: ' . mysqli_connect_error()); $query="SELECT AmtAvailable FROM video WHERE MovieID='$movieID'"; $result=mysqli_query($dbc, $query); $row=mysqli_fetch_array($result, MYSQLI_ASSOC); $amtAvailable = $row['AmtAvailable']; $amtAvailable=$amtAvailable - 1; $query="UPDATE video SET AmtAvailable = '$amtAvailable' WHERE MovieID = $movieID"; $result=mysqli_query($dbc, $query); $query="SELECT m.Title, v.NewRelease FROM movie as m JOIN video as v on m.MovieID=v.MovieID WHERE m.MovieID='$movieID'"; $result=mysqli_query($dbc,$query); $row=mysqli_fetch_array($result, MYSQLI_ASSOC); $title=$row['Title']; $newRelease=$row['NewRelease']; $quantity=1; if($newRelease==0){ $price=3.99; }else{ $price=4.99; } $_SESSION['cart'][$movieID]=array('movieID'=>$movieID,'price'=>$price,'title'=>$title, 'quantity'=> $_SESSION['cart'][$movieID]['quantity'] + $quantity, 'total'=>$_SESSION['cart'][$movieID]['quantity']*$_SESSION['cart'][$movieID]['price']+$quantity*$price); } function deleteFromCart(){ global $movieID; global $quantity; $movieID = $_POST['movieID']; $quantityInCart = $_POST['quantity']; $newQuantity = $quantityInCart - 1; if($newQuantity == 0){ unset($_SESSION['cart'][$movieID]['quantity']); unset($_SESSION['cart'][$movieID]['movieID']); unset($_SESSION['cart'][$movieID]['title']); unset($_SESSION['cart'][$movieID]['price']); unset($_SESSION['cart'][$movieID]['total']); }else{ $_SESSION['cart'][$movieID]['quantity'] = $newQuantity; } $host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); header("Location: http://$host$uri/shoppingCart2.php"); } function displayCart(){ ?> <table border=1> <tr><td>Quantity</td><td>MovieID</td><td>Title</td><td>Price Each</td><td>Total</td><tr> <? foreach($_SESSION['cart'] as $movieID => $value){ $quantity=$_SESSION['cart'][$movieID]['quantity']; echo "<tr><td>{$_SESSION['cart'][$movieID]['quantity']}</td> <td>{$_SESSION['cart'][$movieID]['movieID']}</td> <td>{$_SESSION['cart'][$movieID]['title']}</td> <td>{$_SESSION['cart'][$movieID]['price']}</td> <td>{$_SESSION['cart'][$movieID]['total']}</td>"; deleteFromCartButtons(); "</tr>"; $subtotal=$subtotal + $_SESSION['cart'][$movieID]['total']; } echo '</table></br>'; $tax=5/100*$subtotal; $total=number_format($subtotal+$tax,2); $_SESSION['total']=$total; echo "Your subtotal is: $" . $subtotal . "</br>"; echo "The tax is: $". number_format($tax,2) . "</br>"; echo "Your Total is: $". $total. "</br></br>"; } function deleteFromCartButtons(){ global $movieID; global $quantity;?> <form method='POST' action='shoppingCart2.php'> <td><input type='submit' name='delete' value='Delete'></td> <input type='hidden' name='movieID' value='<?echo $movieID?>'> <input type='hidden' name='quantity' value='<?echo $quantity?>'> <input type='hidden' name='deleteCart' value='TRUE'> <?} function displayCheckOut(){ $dbc= mysqli_connect(connection) OR die ('Could not connect to MySQL: ' . mysqli_connect_error()); $CustName = $_COOKIE['customerName']; $query = "SELECT MemberID, CustName FROM customer WHERE CustName = '$CustName'"; $result = mysqli_query($dbc, $query); while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){ $memberID=$row['MemberID']; } ?> <form method='POST' action="CheckOut.php"> <table border=0> <tr><td>Member ID: </td><td><?echo $memberID;?></td></tr> <input type ='hidden' name='memberID' value='<?echo $memberID?>'> <tr><td>Name:</td><td><input type=text name='CustName' value='<?echo $CustName?>' size=30></td></tr> <tr><td>Email:</td><td><input type=text name='EmailAddress' size=30></td></tr> <tr><td><input type='submit' value='Confirm Order'></td></tr> <input type="hidden" name="submittedFormTest" value="TRUE"/> </table> </form> <?}?> Link to comment https://forums.phpfreaks.com/topic/135584-shopping-cart-sessions/ Share on other sites More sharing options...
The Little Guy Posted December 5, 2008 Share Posted December 5, 2008 assuming you have a $_SESSION['item']['quantity'] I would do something similar to this: $item = $_POST['item']; if($action == 'remove'){ if($_SESSION[$item]['quantity']){ $_SESSION[$item]['quantity']--; } } Link to comment https://forums.phpfreaks.com/topic/135584-shopping-cart-sessions/#findComment-706369 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.