这将显示用户所做的所有产品选择并且有效。我需要添加一个带有函数的变量,该函数将返回$ total_price的所有实例的总和,这样我就可以显示所选产品(项)的总价。我相信对你们许多人来说这将是一件简单的事情。 我不知道怎么做,一直无法找到一个例子。此代码来自购物车,只要我可以显示所有选择的总价格,我就可以将其用作结帐的一部分。 在此之后采取该小计并增加税收应该是一件简单的事情。 有人请告诉我$ sub_total的代码吗?
<?php
session_start();
//connect to database
$mysqli = mysqli_connect("localhost", "root", "", "hestonw0355");
//$mysqli = mysqli_connect("localhost", "hestonw0355", "1Password!", "hestonw0355"); //for the school server
//$mysqli = mysqli_connect("localhost", "sungr_RobW", "O+N7?Pa%Go*T&", "sungraff_hestonw0355") or die("Error " . mysqli_error($mysqli)); //for dailyrazor.com
$display_block = "<h1>Your Shopping Cart</h1>";
//check for cart items based on user session id
$get_cart_sql = "SELECT st.id, si.item_title, si.item_price,
st.sel_item_qty, st.sel_item_size, st.sel_item_color FROM
store_shoppertrack AS st LEFT JOIN store_items AS si ON
si.id = st.sel_item_id WHERE session_id =
'".$_COOKIE['PHPSESSID']."'";
$get_cart_res = mysqli_query($mysqli, $get_cart_sql)
or die(mysqli_error($mysqli));
if (mysqli_num_rows($get_cart_res) < 1) {
//print message
$display_block .= "<p>You have no items in your cart.
Please <a href=\"seestore.php\">continue to shop</a>!</p>";
} else {
while ($cart_info = mysqli_fetch_array($get_cart_res)) {
$id = $cart_info['id'];
$item_title = stripslashes($cart_info['item_title']);
$item_price = $cart_info['item_price'];
$item_qty = $cart_info['sel_item_qty'];
$item_color = $cart_info['sel_item_color'];
$item_size = $cart_info['sel_item_size'];
$total_price = sprintf("%.02f", $item_price * $item_qty);
$sub_total =
//get info and build cart display
$display_block .= <<<END_OF_TEXT
<table width='100%'>
<tr>
<th>Title</th>
<th>Size</th>
<th>Color</th>
<th>Price</th>
<th>Qty</th>
<th>Total Price</th>
<th>Action</th>
</tr>
<tr>
<td>$item_title <br></td>
<td>$item_size <br></td>
<td>$item_color <br></td>
<td>\$ $item_price <br></td>
<td>$item_qty <br></td>
<td>\$ $total_price</td>
<td><a href="removefromcart.php?id=$id">remove</a></td>
</tr>
END_OF_TEXT;
}
$display_block .= "</table>";
}
//free result
mysqli_free_result($get_cart_res);
//close connection to MySQL
mysqli_close($mysqli);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
答案 0 :(得分:1)
要获得全球总价,您可以:
在$sub_total
之前设置变量while
,如下所示:
$sub_total = 0;
在while
循环中,您为每个迭代计算的$total_price
添加变量,如下所示:
$sub_total = $sub_total + $total_price
或以紧凑的方式:
$sub_total += $total_price
建议:
改变这个:
$total_price = sprintf("%.02f", $item_price * $item_qty);
在:
$total_price = $item_price * $item_qty;
并在您想要显示时格式化您的值。
其他代码部分应该改变,但我把注意力集中在你的主要要求上。
答案 1 :(得分:1)
您可以设置
$sub_total = 0 before while loop starts;
然后执行$sub_total += $total_price
。在while循环结束时,$ sub_total将包含所有产品的总价。