суммировать строку и вставить в новый столбец - PullRequest
1 голос
/ 15 апреля 2011

У меня есть база данных для отслеживания веса предметов.поля: 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

Мне не важна сумма для каждого столбца или грандитого ... просто сумма каждой строки, добавленная к соответствующей строке.

Ответы [ 3 ]

3 голосов
/ 15 апреля 2011
UPDATE mytable SET order_total=order01+order02+order03

сделает свое дело.Тем не менее, вы должны пересмотреть свой дизайн стола.Если для большинства заказов требуется только 1 элемент, значит, вы потеряли 2 поля в базе данных.И вы определенно сделали очень трудным / невозможным для кого-то заказать 4 или более предметов.

Что вам нужно сделать, это разбить детали заказа на дополнительную таблицу, что дает практически неограниченную гибкость от 1 до 'лотов'заказов.

0 голосов
/ 15 апреля 2011
UPDATE customer_orders
    SET order_total = order01 + order02 + order03
0 голосов
/ 15 апреля 2011
UPDATE your_table SET order_total=(order01 + order01 + order03) WHERE id='id_of_field_to_change'

Если вы хотите выполнить их все сразу, просто снимите предложение where.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...