2016-08-15 3 views
0

У меня есть цикл, который извлекает 2 числа из таблицы, а затем вычисляет общее количество.SUM in a while loop - php

Я хочу найти окончательное итоговое значение (сумма всех итогов).

Есть ли способ не использовать БД для вычисления СУММЫ, но делать это в цикле.

while($row = $result->fetch_assoc()) { 

    $total= $row["num1"] + $row["num2"]; 

} 

Как это сделать?

Это неправильно:

while($row = $result->fetch_assoc()) { 

    $total= $row["num1"] + $row["num2"]; 

    $total = $total + $total; 

} 
+0

В первой попытке переназначить '$ total' каждой итерации, но, конечно, вы хотите, чтобы добавить новые значения в каждая итерация. Во второй попытке то же самое, только что вы добавили еще одну строку, где вы удваиваете значение, но все же переназначаете его. Также обязательно инициализируйте переменную перед циклом while. – Rizier123

ответ

1
$total=0; 
while($row = $result->fetch_assoc()) { 

    $sum= $row["num1"] + $row["num2"]; 

    $total = $total + $sum; 

} 
0

Просто инициализировать $total вне while Loop до нуля, а затем добавить к нему так:

<?php 

    $total  = 0; 

    while($row = $result->fetch_assoc()) { 
     $total += ($row["num1"] + $row["num2"]); 

    } 
0

Вы можете просто добавить в общую общая с каждой итерацией цикла:

<?php 
$total = 0; 
while($row = $result->fetch_assoc()) { 
    $total += $row['num1'] + $row['num2']; 
} 

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

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

0
$total = 0; 

while($row = $result->fetch_assoc()) { 
    $total += $row["num1"] + $row["num2"]; 
}