简单点说,假设我有一个购物车,有三个不同的价格:
- 美元价格 specialprice美元salesprice美元
当然有产品数量。
数学的第一步是:<?php
$price_regular = $price * $quantity
$price_special = $specialprice * $quantity
$price_sales = $salesprice * $quantity
?>
让我做一个简单的例子,在购物车中添加3个产品后:
- 产品A - 30美元($price)
- 产品B - 25美元($特价)(旧价格为30美元)
- 产品C - 22$ ($salesprice)(旧产品为35$)
总和应该是77美元。
这是我想从我的代码得到的结果。
但如何?
我试着这样做:
<?php
$totalprice = $totalprice + $price_regular;
?>
,但它只给我正常价格的总和。我需要的代码来计算完全在我的简单的例子与产品A - B - C
这是我的文件中的真实代码:
$totalprice = 0;
$totalarticles = count($itemsonpage);
for ($i=0;$i<=(count($itemsonpage) - 1);$i++){
$productslist[$i]['id'] = $itemsonpage[$i]['productid'];
$products->ShowByID($itemsonpage[$i]['productid']);
$productslist[$i]['code'] = $products->code;
$products->ShowLangDataByID($products->id,$chooselang);
$productslist[$i]['name'] = $products->name;
$productslist[$i]['quantity'] = $itemsonpage[$i]['quantity'];
$productslist[$i]['price'] = $itemsonpage[$i]['price'];
$productslist[$i]['specialprice'] = $products->specialprice;
$productslist[$i]['salesprice'] = $products->salesprice;
$productslist[$i]['allprice'] = $products->price * $productslist[$i]['quantity'];
$productslist[$i]['allprice2'] = $products->specialprice * $productslist[$i]['quantity'];
$productslist[$i]['allprice3'] = $products->salesprice * $productslist[$i]['quantity'];
$totalprice = $totalprice + $productslist[$i]['allprice'];
<?php
$totalprice += $price_regular;
$totalprice += $price_special;
$totalprice += $price_sales;
echo $totalprice;
?>
为什么不能这样计算呢?
<?php
$totalprice = $price_sales + $price_special + $price_regular;
?>
由于您只添加$price_regular
,因此只能在$totalprice
中获得它。你需要试着这样做,把这三个价格加起来,
$totalprice = $price_regular + $price_special + $price_sales;
假设您的购物车中有几种产品,但您不知道有多少。你应该多读一些PHP数组和PHP循环的知识。
然后,要使用数组和循环来执行求和,可以使用如下操作:
<?php
$totalprice = 0;
$prices=array(30,25,22);
foreach ($prices as $each)
{
$totalprice += ;
}
echo $totalprice."<br />";
?>
从你的问题中我明白你需要加3个数字,上面所有的答案都告诉你如何加3个数字。
我想你实际上问错了问题,所以我会给你一个错误的答案,也许这是你想要的。
数据库结构如下表product (id, name, price_sales, price_special, price_regular)
price_sales和price_special可以为0,表示该产品既不打折也不特价。
要获得总数,您必须根据id对数据库中的每个产品执行选择,并获得一个具有列作为属性的对象。你的代码应该是这样的:
$products = function_that_gets_the_products_from_the_db();
foreach($products as $product) {
$total_cart += $product->price_sales ? $product->price_sales : ($product->price_special ? $product->price_special : $product->price_regular)
}
此代码检查产品是否在销售,如果是,则使用该价格,如果不是,则检查是否在特价,如果是,则使用该价格,否则使用正常价格。