Как рассчитать итог результата запроса в php?

Мне было интересно, могу ли я получить некоторую помощь, отражая сумму каждого столбца на основе результата запроса. Снимок экрана вывода таблицы

<?php

if ($stationid=="") {
$query  = "select * from " . $tablename . " where  date_created >= '" . $startdate . "' and date_created <= '" . $enddate . "' and status='1' order by id desc"; ?>

$result = do_query($query);
$total = mysql_num_rows($result);
if ($total>0) {
while($row = do_fetch_result($result)){
?>

<?php
$sum_static = $row['SUM(element_10)'];
$sum_gif = $row['SUM(element_11)'];
$sum_ibv = $row['SUM(element_12)'];
$sum_html5 = $row['SUM(element_13)'];
$sum_landing = $row['SUM(element_14)'];
$sum_revs = $row['SUM(element_15)'];
?>

<tr>
<td><?php echo $sum_static; ?></td>
<td><?php echo $sum_ibv; ?></td>
<td><?php echo $sum_gif; ?></td>
<td><?php echo $sum_html5; ?></td>
<td><?php echo $sum_landing; ?></td>
<td colspan=1><?php echo $sum_revs; ?></td>
</tr>

-2

Решение

Если нам нужно вычислить сумму из отдельных строк (если все, что мы хотим получить, это итоги, то это не самый эффективный способ получения итогов), мы могли бы инициализировать $sum_foo переменные к нулю …

$sum_static = 0;
$sum_foo    = 0;

А затем для каждой выбранной строки добавьте значение столбца к промежуточному итогу.

$sum_static += $row['static'];
$sum_foo  c += $row['foo'];

После извлечения последнего ряда $sum_foo переменные будут иметь сумму для этого столбца для всех строк.


С точки зрения производительности, это очень неэффективный способ получить только итоги. Мы можем иметь базу данных, возвращающую итоги. Мы угробили * в списке SELECT и укажите агрегатные функции в списке SELECT:

 SELECT SUM(static)   AS sum_static
, SUM(foo)      AS sum_foo
FROM ...

Выполните запрос и получите один строка, которая возвращается, и строка будет иметь предварительно вычисленные итоги …

 $row['sum_static']
$row['sum_foo']
-1

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

Просто укажите имя столбца с агрегатной функцией.

SELECT SUM(column1),SUM(column2)
FROM tablename
0

<?php
$overallstatic="0";
$overallgif="0";
$overallibv="0";
$overallhtml5="0";
$overalllanding="0";
$overallrev="0";
<?

<?php
$overallstatic=$overallstatic+$row['element_10'];
$overallgif=$overallgif+$row['element_11'];
$overallibv=$overallibv+$row['element_12'];
$overallhtml5=$overallhtml5+$row['element_13'];
$overalllanding=$overalllanding+$row['element_14'];
$overallrev=$overallrev+$row['element_15'];
?>

<?php
<td><?php echo $overallstatic; ?></td>
<td><?php echo $overallibv; ?></td>
<td><?php echo $overallgif; ?></td>
<td><?php echo $overallhtml5; ?></td>
<td><?php echo $overalllanding; ?></td>
<td colspan=1><?php echo $overallrev; ?></td>
?>

Это сработало.

0
По вопросам рекламы [email protected]