带有变量和内爆的 Php 数学


Php math with variable and implode

好的。 因此,IM作为学校项目制作的网站几乎完成了。但是我对最后一点有一些问题。

在网站上,人们可以在第一页上以多选形式选择一些商品。

然后将这些商品的ID发送到我正在处理的页面。这里,商品的价格是从id的机器数据库中选择的(价格是"kunde_pris"行)

现在他们应该在那里添加或减去值。但我似乎无法让它以正确的方式工作。

到目前为止,我得到的代码是这样的

$test = $_POST['tilbehor'];
$test=implode(',',$test);
$query = "SELECT * FROM tilbehor WHERE t_id IN ($test)";
$result = $db->query($query);
$num_rows = $result->num_rows;
    if($num_rows > 0) {
        while($row = mysqli_fetch_array($result)) {
            $number = 10 + 20 + $row['kunde_pris'];
            echo "$number ";
        }
        } else {
        echo "error";
        } 

我从中得到的结果是"1710 2430"。因此,它采用从 $_POST['tilbehor'] 获得的值,现在的 id 为 2 和 19。然后,它进入数据库并找到来自 POST 的 ID = ID 的商品。 这两种商品的数据库中的价格是 1680 和 2400。因此,当我尝试使用数学时,我得到 10+20+1680=1720 和 10+20+2400=2430,而我想要的是 10+20+1680+2400=4110

关于如何解决这个问题的任何想法?

您需要添加到之前的 $number 值中,而不是每次通过循环替换该值。

$number = 10 + 20;
while ($row = mysqli_fetch_array($result)) {
    $number += $row['kunde_pris'];
}
echo $number;

当然,您也可以只计算查询中的总数:

SELECT 10+20+SUM(kunde_pris) AS total 
FROM tilbehor
WHERE t_id IN ($test);