我想知道是否可以根据查询结果得到一些帮助来回显每列的总和。 Screenshot of table output
<?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>
答案 0 :(得分:0)
只需使用聚合函数指定列名称。
SELECT SUM(column1),SUM(column2)
FROM tablename
答案 1 :(得分: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>
?>
这很有用。
答案 2 :(得分:-1)
如果我们需要计算各行的总和(如果我们想要返回的总数是总数,那么这不是获得总数的最有效方法),我们可以将$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 ...
执行查询,并获取返回的 one 行,该行将包含预先计算的总数...
$row['sum_static']
$row['sum_foo']