我有一个用来跟踪项目权重的数据库。字段为: id、email、order01、order02、order03、order_total
示例数据:
1 mon@gmail.com 0.250 0.000 0.000 0.000
2 amy@amy.com 0.510 1.888 0.219 0.000
3 ci@mindspring.com 0.219 0.500 0.000 0.000
4 kim@kim.com 0.219 0.000 0.000 0.000 我能够添加数据(即新行或更新现有行),我也能够使用php来显示html表中的数据,我还能够对每一行进行求和,并通过电子邮件输出单个列的总和。我需要做的是对每一行求和,并在末尾的另一列中插入总和。
所需示例数据:
1 mon@gmail.com 0.250 0.000 0.000 0.250
2 amy@amy.com 0.510 1.888 0.219 2.617
3 ci@mindspring.com 0.219 0.500 0.000 0.719
4 kim@kim.com 0.219 0.000 0.000 0.219 同样,我能够在表中显示数据,并且能够对每一行进行求和-我只是不知道如何将求和插入到适当的列中
这是我用来对数据求和的代码:
$result = mysql_query('SELECT email, (order01+order02+order03) AS order_total FROM `customer_orders`');
if (mysql_num_rows($result) > 0) {
print '<ul>';
$sum = array(); // initialize
while ($myrow = mysql_fetch_array($result)) {
$sum[] = $myrow['order_total']; // sum
$ordertotal= $myrow['order_total'];
print "<li>$ordertotal</li>";
}
$sum = array_sum($sum);
print "</ul>$sum\n";
} else {
print "<h1>No results</h1>\n";
}这将为我提供一个包含单个列的页面,如下所示:
0.250
2.617
0.719
0.219
3.8我真的不关心每一列的总数,或者一个总的总数……只是每一行的总和,加到各自的行上。
发布于 2011-04-16 00:13:36
UPDATE mytable SET order_total=order01+order02+order03就能达到目的。但是,您应该重新考虑您的表设计。如果大多数订单只需要1个项目,那么您已经浪费了数据库中的2个字段。而且你肯定让别人很难/不可能订购4件或更多的东西。
您应该做的是将订单详细信息拆分到一个子表中,这基本上为1到“大量”的订单提供了无限的灵活性。
发布于 2011-04-16 00:13:19
UPDATE your_table SET order_total=(order01 + order01 + order03) WHERE id='id_of_field_to_change'如果您想一次完成所有这些操作,只需去掉where子句。
发布于 2011-04-16 00:13:36
UPDATE customer_orders
SET order_total = order01 + order02 + order03https://stackoverflow.com/questions/5679514
复制相似问题