如何在php中计算总价格

时间:2015-10-07 07:47:34

标签: php mysql

我使用我存储在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>&#8377; </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;
}

7 个答案:

答案 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>&#8377; </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>&#8377; </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>&#8377; </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";
    }