mysqli_fetch_object - 如何获取值的总和

时间:2014-09-25 23:03:53

标签: php mysqli sum

我认为我的问题可能有一个简单的解决方案。我正在尝试获取mysqli_query调用返回的值的总和。也许有人可以帮我解决这个问题?

在我的数据库中,有INT值。

function get_einkommen($user, $var){
global $db;
$sum;
$sum2=0;
$query = "SELECT $var FROM kartedb WHERE besetzt_von_user = '$user'";
if ($result = mysqli_query($db, $query)) {

    while ($obj = mysqli_fetch_object($result)) {

        $sum=intval($obj->$var);
        echo $sum;
    }
    for($i=0;$i<10;$i++){
        $sum2=$sum2+$sum[$i];
        echo $sum;
    }

mysqli_free_result($result);
}
}

从第一个回声中,我得到1121110(所以theese是数据库中的值。),但是从第二个回声我只看到0000000000。即使for-loop也不好,不知道如何处理它。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您反复设置金额而不是添加金额。

function get_einkommen($user, $var){
global $db;
$sum;
$sum2=0;
$query = "SELECT $var FROM kartedb WHERE besetzt_von_user = '$user'";
if ($result = mysqli_query($db, $query)) {

    while ($obj = mysqli_fetch_object($result)) {

        $sum += intval($obj->$var);
        echo $sum;
    }
    for($i=0;$i<10;$i++){
        $sum2=$sum2+$sum[$i];
        echo $sum;
    }

mysqli_free_result($result);
}
}

我认为这会解决您的问题。

答案 1 :(得分:0)

你可以将求和推到mysql。

从kartedb中选择总和(列),其中besetzt_von_user =&#39; $ user&#39;;

然后,您只需要一个预先计算的总和来检索。

如果行数很小,可能没有太大的区别,但是如果它是一个很大的总和,则写入的字节数会减少。

答案 2 :(得分:0)

最后我修好了,用这种方式工作......

function get_einkommen($user, $var){
global $db;
$query = "SELECT sum($var) AS var_sum FROM kartedb WHERE besetzt_von_user = '$user'";
$result = mysqli_query($db,$query);
$row = mysqli_fetch_assoc($result);
$sum = $row['var_sum'];
echo $sum;
}