我有一个用于跟踪项目权重的数据库。 这些领域是: 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
我并不关心每列的总数,或者总计...只是每行的总和,添加到相应的行。
答案 0 :(得分:3)
UPDATE mytable SET order_total=order01+order02+order03
会做到这一点。但是,您应该重新考虑您的桌面设计。如果大多数订单只需要1个项目,那么您在数据库中浪费了2个字段。而且你肯定让某人订购4件或更多件物品变得非常困难/不可能。
您应该做的是将订单详细信息拆分为子表,这为1到'批量'的订单提供了基本上无限的灵活性。
答案 1 :(得分:0)
UPDATE your_table SET order_total=(order01 + order01 + order03) WHERE id='id_of_field_to_change'
如果你想一次性完成它们,只需取下where子句。
答案 2 :(得分:0)
UPDATE customer_orders
SET order_total = order01 + order02 + order03