2016-08-15 2 views
0

테이블에서 2 개의 숫자를 추출한 후 총계를 계산하는 루프가 있습니다.while 루프의 SUM - ph

최종 합계 (합계 합계)를 찾고 싶습니다.

DB를 사용하여 SUM을 계산하지 않고 루프 내에서 수행하는 방법이 있습니까?

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

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

} 

어떻게하면됩니까?

이것은 잘못된 것입니다 :

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

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

    $total = $total + $total; 

} 
+0

...이 실제 작품을 작업하지만, 일부 세미나 숙제 또는 유사하지 가정하지만, 물론 당신은에 새 값을 추가 할 각 반복. 두 번째 시도에서는 동일하게, 다른 행을 추가하여 값을 두 배로 늘리지 만 여전히 재 할당합니다. 또한 while 루프 전에 변수를 초기화해야합니다. – Rizier123

답변

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

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

    $total = $total + $sum; 

} 
0

간단히 제로에 $totalwhile 루프 밖에서 초기화하고 다음과 같이 그것에 추가

<?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 엔진 자체를 사용하는 것보다 훨씬 효율적이지 않습니다. 그러나 나는 당신이 각 반복 total``$를 재 할당 첫 번째 시도에서

0
$total = 0; 

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