我使用我存储在php数组中的产品ID从db获得产品的价格。
我有一个PHP功能,我想要持有所有购买的产品。在这里,我得到购物车项目,我正在调用应该持有总金额的功能。每次从购物车中检索产品时,我都会传递值price
。
例如,对于第一项迭代,我发送值300,而对于第二项400,则为第三项900。
我想将所有这些加起来,并在payableAmount()
中获得1600的总价
我怎么能这样做?
function getCartitems($product_id){
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT product_id,product_name,product_price,product_image_url FROM product_list WHERE product_id='$product_id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr><td><img class='cart-image img-responsive' src='".$row["product_image_url"]."'></td><td>".$row["product_name"]."</td><td><b>₹ </b>".floor($row["product_price"])."</td><td><a href='mycart.php?action=remove&product_id=".$row['product_id']."'><span class='glyphicon glyphicon-remove'></span> remove</a></td></tr>";
$price = $row['product_price'];
payableAmount($price);
}
} else {
echo "There are no such items";
}
$conn->close();
}
function payableAmount($totalPrice){
// calculate total price here
$total = $totalPrice;
echo $total;
}
答案 0 :(得分:3)
您只需更新您的查询,就像
一样$total_price = 0;
while($row = $result->fetch_assoc()) {
echo "<tr><td><img class='cart-image img-responsive' src='".$row["product_image_url"]."'></td><td>".$row["product_name"]."</td><td><b>₹ </b>".floor($row["product_price"])."</td><td><a href='mycart.php?action=remove&product_id=".$row['product_id']."'><span class='glyphicon glyphicon-remove'></span> remove</a></td></tr>";
$total_price += $row['product_price'];
}
答案 1 :(得分:2)
只需在外面宣布 -
Traceback (most recent call last):
File "/Users/sebastian/OneDrive/orc/restAPI/createSpace.py", line 1, in <module>
import requests
File "/Library/Python/2.7/site-packages/requests/__init__.py", line 61, in <module>
from . import utils
File "/Library/Python/2.7/site-packages/requests/utils.py", line 25, in <module>
from .compat import parse_http_list as _parse_list_header
File "/Library/Python/2.7/site-packages/requests/compat.py", ine 7, in <module>
from .packages import charade as chardet
File "/Library/Python/2.7/site-packages/requests/packages/__init__.py", line 3, in <module>
from . import urllib3
File "/Library/Python/2.7/site-packages/requests/packages/urllib3/__init__.py", line 16, in <module>
from .connectionpool import (
File "/Library/Python/2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 33, in <module>
from .connection import (
File "/Library/Python/2.7/site-packages/requests/packages/urllib3/connection.py", line 41, in <module>
from .util import (
File "/Library/Python/2.7/site-packages/requests/packages/urllib3/util/__init__.py", line 4, in <module>
from .response import is_fp_closed
File "/Library/Python/2.7/site-packages/requests/packages/urllib3/util/response.py", line 3, in <module>
from ..exceptions import HeaderParsingError
ImportError: cannot import name HeaderParsingError
答案 2 :(得分:1)
使用while循环计算价格。声明变量$totalPrice
,然后在while循环中对其求和。
function getCartitems($product_id){
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT product_id,product_name,product_price,product_image_url FROM product_list WHERE product_id='$product_id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$totalPrice = 0;
while($row = $result->fetch_assoc()) {
echo "<tr><td><img class='cart-image img-responsive' src='".$row["product_image_url"]."'></td><td>".$row["product_name"]."</td><td><b>₹ </b>".floor($row["product_price"])."</td><td><a href='mycart.php?action=remove&product_id=".$row['product_id']."'><span class='glyphicon glyphicon-remove'></span> remove</a></td></tr>";
$price = $row['product_price'];
$totalPrice += $price;
}
} else {
echo "There are no such items";
}
$conn->close();
}
答案 3 :(得分:0)
在函数外部创建变量。然后在功能中将价格添加到此变量中。并使用
GRAPH_NEIGHBORS
答案 4 :(得分:0)
您可以简单地在循环中添加价格,并通过将其存储在变量中来获得相同的结果。
paidAmount($ price); //不需要调用不同的函数,因为它只返回当前价格,而不是这个你可以添加下面给出的价格 $ TOTAL_PRICE + = $价格;
答案 5 :(得分:0)
您需要在paidAmount()函数中进行简单修改
function payableAmount(&$totalPrice){
// calculate total price here
$totalPrice += $totalPrice;
}
现在通过引用传递变量,因此在执行此操作后它将被修改,您可以回显$ totalPrice并且它将被更改,其他2个选项是使用静态变量或全局变量。但是,如果我是你,我不会使用函数来完成这么简单的任务。只需在循环和内部循环$total
之前声明$total += $price;
,这就足够了
答案 6 :(得分:0)
if ($result->num_rows > 0) {
$totalPrice = 0; // Initialice the var before to go into the while loop
while($row = $result->fetch_assoc()) {
echo "<tr>
<td><img class='cart-image img-responsive' src='".$row["product_image_url"]."'></td>
<td>".$row["product_name"]."</td><td><b>₹ </b>".floor($row["product_price"])."</td>
<td><a href='mycart.php?action=remove&product_id=".$row['product_id']."'>
<span class='glyphicon glyphicon-remove'></span> remove</a></td>
</tr>";
// increment the price...
$totalPrice += $row['product_price'];
}
// Now you can use the $totalPrice var
} else {
echo "There are no such items";
}