【问题标题】:sum row and insert into new column求和行并插入新列
【发布时间】:2011-04-15 16:08:31
【问题描述】:

我有一个用于跟踪物品重量的数据库。 字段是: 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

我并不真正关心每一列的总数,或者总计......只是每一行的总和,添加到相应的行。

【问题讨论】:

    标签: php mysql sum


    【解决方案1】:
    UPDATE mytable SET order_total=order01+order02+order03
    

    会成功的。但是,您应该重新考虑您的表格设计。如果大多数订单只需要 1 件商品,那么您就浪费了数据库中的 2 个字段。而且您肯定让某人订购 4 件或更多商品变得非常困难/不可能。

    您应该做的是将订单详细信息拆分到一个子表中,这基本上为 1 到“手”的订单提供了无限的灵活性。

    【讨论】:

      【解决方案2】:
      UPDATE your_table SET order_total=(order01 + order01 + order03) WHERE id='id_of_field_to_change'
      

      如果你想一次全部完成,只需去掉 where 子句。

      【讨论】:

        【解决方案3】:
        UPDATE customer_orders
            SET order_total = order01 + order02 + order03
        

        【讨论】:

          猜你喜欢
          • 2020-07-09
          • 2017-08-23
          • 2021-03-20
          • 2020-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多