2011-11-27 84 views
2

这可能听起来很蹩脚,但我总结了从mysql检索到的值。 我想总结从mysql数据库中检索到的销售发票项目总数。 以下是每行的子总数的罚款。php中的总和总数

while($row = mysql_fetch_array($qry)){ 
echo $row['b'] * $row['c']; 
} 

“b”为数量和“c”是这些值是从MySQL检索price.all和没有行的是可变的,这一切都是在while循环的内部。 现在在while循环之外,最后一行,我想要总计。有人能指引我走向正确的方向吗?我试过

echo SUM($row['b'] * $row['c']); 

但这不起作用,并给出错误。我相信我做错了。

+0

你确定你的MySQL数据库对行'b'和'c'使用整数值吗?如果他们使用字符串值,他们将作为字符串返回。这就是为什么它可能无法正常工作。 –

+2

不是'SUM' sql吗? – abhinav

回答

5
$total = 0; 
while($row = mysql_fetch_array($qry)) 
{ 
    echo $row['b'] * $row['c']; 
    $total += ($row['b'] * $row['c']); 
} 

// at the end, $total = grand total 
+0

谢谢。它没有给出错误,但结果是0.你能否告诉我。可能是scjosh是对的,它正在将价值看作是字符串。我该怎么做才能纠正这个问题。谢谢:-) – mmdel

+1

这回答了这个问题,但是你不认为让DB做这个总和会快很多吗?有PHP来挖掘大型结果集的IMO不是一个好主意。尽管工作代码+1。 – Slava

+0

@slave你已经拥有了所有的结果,为什么会浪费另一个查询来获得总计? – ajreal

2

为什么不使用SQL来做SQL最好?

SELECT SUM(b*c) 
FROM table 

那样简单。