Php 带有变量和内爆的数学

Php math with variable and implode

好的。所以我作为学校项目制作的网站几乎完成了。但是我在最后一点遇到了一些问题。

在网站上,一个人可以 select 一些商品以多 select 形式出现在第一页。

然后将这些商品的 ID 发送到我正在处理的页面。这里商品的价格是从 ID 所在的数据库中 select 编辑的。 (价格是第"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。然后它进入数据库并找到商品,其中 ID = 来自 POST。这两种商品数据库中的价格是 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);