こんにちは、2 つの PHP ファイルで構成されたショッピング カートがあります。order.php と products.php。
すべての構成は注文ファイルに設定されており、MYSQL データベースを使用していないため、セッションを使用しています。
カートに追加されたすべてのアイテムの総計を取得しようとしていますが、これが苦労しています。カートに追加された各アイテムの合計は取得できますが、すべてのアイテムの合計は取得できません。これについての助けをいただければ幸いです。
ありがとうございました
PHP
<?php
//Start the session
session_start();
//Create 'cart' if it doesn't already exist
if (!isset($_SESSION['SHOPPING_CART'])){ $_SESSION['SHOPPING_CART'] = array(); }
//Add an item only if we have the threee required pices of information: name, price, qty
if (isset($_GET['add']) && isset($_GET['price']) && isset($_GET['qty'])){
//Adding an Item
//Store it in a Array
$ITEM = array(
//Item name
'name' => $_GET['add'],
//Item Price
'price' => $_GET['price'],
//Qty wanted of item
'qty' => $_GET['qty']
);
//Add this item to the shopping cart
$_SESSION['SHOPPING_CART'][] = $ITEM;
//Clear the URL variables
header('Location: ' . $_SERVER['PHP_SELF']);
}
//Allowing the modification of individual items no longer keeps this a simple shopping cart.
//We only support emptying and removing
else if (isset($_GET['remove'])){
//Remove the item from the cart
unset($_SESSION['SHOPPING_CART'][$_GET['remove']]);
//Re-organize the cart
//array_unshift ($_SESSION['SHOPPING_CART'], array_shift ($_SESSION['SHOPPING_CART']));
//Clear the URL variables
header('Location: ' . $_SERVER['PHP_SELF']);
}
else if (isset($_GET['empty'])){
//Clear Cart by destroying all the data in the session
session_destroy();
//Clear the URL variables
header('Location: ' . $_SERVER['PHP_SELF']);
}
else if (isset($_POST['update'])) {
//Updates Qty for all items
foreach ($_POST['items_qty'] as $itemID => $qty) {
//If the Qty is "0" remove it from the cart
if ($qty == 0) {
//Remove it from the cart
unset($_SESSION['SHOPPING_CART'][$itemID]);
}
else if($qty >= 1) {
//Update to the new Qty
$_SESSION['SHOPPING_CART'][$itemID]['qty'] = $qty;
}
}
//Clear the POST variables
header('Location: ' . $_SERVER['PHP_SELF']);
}
?>
HTMLフォーム
<form action="" method="post" name="shoppingcart">
<?php
ob_start();
?>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th width="143" height="46" scope="col"> </th>
<th width="177" scope="col">Item Name</th>
<th width="155" scope="col">Unit Price</th>
<th width="130" scope="col">Quantity</th>
<th width="95" scope="col">Total</th>
</tr>
<?php
//Print all the items in the shopping cart
foreach ($_SESSION['SHOPPING_CART'] as $itemNumber => $item) {
?>
<tr id="item<?php echo $itemNumber; ?>">
<td height="41"><a href="?remove=<?php echo $itemNumber; ?>">Remove Item</a></td>
<td><?php echo $item['name']; ?></td>
<td>£<?php echo $item['price']; ?></td>
<td><input name="items_qty[<?php echo $itemNumber; ?>]" type="text" id="item<?php echo $itemNumber; ?>_qty" value="<?php echo $item['qty']; ?>" size="2" maxlength="3" /></td>
<td>£<?php echo $item['qty'] * $item['price']; ?></td>
<td>£<?php echo $item['total'] * $item['price']; ?></td>
</tr>
<?php
}
?>
</table>
<?php $_SESSION['SHOPPING_CART_HTML'] = ob_get_flush(); ?>
<p align="left">
<label>
<p><a href="../products.php">Keep Shopping</a> - <a href="?empty">Empty Cart</a><br />
<br />
<input type="submit" name="update" id="update" value="Update Cart" />
<br />
<br />
</label>
</form>