mysqli_fetch_object — как получить сумму значений

Я думаю, что может быть простое решение для моей проблемы. Я пытаюсь получить сумму значений, возвращаемых вызовом 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 (таким образом, значения в БД), но из второго эха я вижу только 0000000000. Даже цикл for не хорош, не знаю, как справиться с этим. Какие-либо предложения?

1

Решение

Вы устанавливаете сумму снова и снова, а не добавляете ее.

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);
}
}

Я думаю, что это решит вашу проблему.

0

Другие решения

Вы можете перенести суммирование в MySQL.

выберите сумму (столбец) из kartedb, где besetzt_von_user = ‘$ user’;

Тогда у вас есть только одна предварительно вычисленная сумма для извлечения.

Возможно, нет большой разницы, если число строк мало, но меньше байтов по сравнению с записью, которая будет отправлена, если это большая сумма.

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;
}
0
По вопросам рекламы [email protected]