如何计算 php 中查询结果的总和?
How do I calculate the total of a query result in php?
我想知道是否可以得到一些帮助来根据查询结果回显每列的总和。 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>
如果我们需要计算各个行的总和(如果我们想要 return 的只是总计,那么这不是获得总计的最有效方法),我们可以初始化 $sum_foo
变量归零...
$sum_static = 0;
$sum_foo = 0;
然后对于提取的每一行,将列值添加到 运行 总数中。
$sum_static += $row['static'];
$sum_foo c += $row['foo'];
获取最后一行后,$sum_foo
变量将具有该列所有行的总计。
就性能而言,这是一种非常低效的只获取总数的方法。我们可以让数据库 return 总数。我们在 SELECT 列表中放弃 *
,并在 SELECT 列表中指定聚合函数:
SELECT SUM(static) AS sum_static
, SUM(foo) AS sum_foo
FROM ...
执行查询,并获取 行 returned,该行将具有预先计算的总计...
$row['sum_static']
$row['sum_foo']
只需指定带聚合函数的列名即可。
SELECT SUM(column1),SUM(column2)
FROM tablename
<?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>
?>
这有效。
我想知道是否可以得到一些帮助来根据查询结果回显每列的总和。 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>
如果我们需要计算各个行的总和(如果我们想要 return 的只是总计,那么这不是获得总计的最有效方法),我们可以初始化 $sum_foo
变量归零...
$sum_static = 0;
$sum_foo = 0;
然后对于提取的每一行,将列值添加到 运行 总数中。
$sum_static += $row['static'];
$sum_foo c += $row['foo'];
获取最后一行后,$sum_foo
变量将具有该列所有行的总计。
就性能而言,这是一种非常低效的只获取总数的方法。我们可以让数据库 return 总数。我们在 SELECT 列表中放弃 *
,并在 SELECT 列表中指定聚合函数:
SELECT SUM(static) AS sum_static
, SUM(foo) AS sum_foo
FROM ...
执行查询,并获取 行 returned,该行将具有预先计算的总计...
$row['sum_static']
$row['sum_foo']
只需指定带聚合函数的列名即可。
SELECT SUM(column1),SUM(column2)
FROM tablename
<?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>
?>
这有效。