2012-05-29 4 views
1

Я пытаюсь суммировать несколько полей в базе данных SQL. Поля называются неделями с 13 по 13, поскольку они хранят результаты за каждую неделю. У меня есть это на данный момент, но он ничего не выводит, любая помощь будет оценена по достоинству. ПриветствияСуммы SQL-полей вместе Итого

<?php 
      if ($resultsRows == 0){ 
      echo '<p> No results have been listed for you yet. </p>'; 
      } 
      if ($resultsRows > 0){    
      $qrytotalresult = "SELECT SUM(week1 + week2 + week3 + week4 + week5 + week6 + week7 + week8 + week9 + week10 + week11 + week12 + week13) FROM results WHERE username = '$username'"; 
      $TotalResult = mysql_query($qrytotalresult); 
      return $TotalResult; 

      } 
     ?> 
+0

SQL это не единственная проблема здесь - mysql_query не возвращает значение. Вы должны использовать mysql_fetch_array() для его получения. – MarcinJuraszek

+0

$ result = mysql_fetch_array ($ query); \t \t \t echo $ result; я теперь добавил, что для захвата и печати - только теперь он печатает слово массив .. – user1371500

ответ

0
SELECT SUM(week1) + SUM(week2) + SUM(week3) + SUM(week4) + SUM(week5) + 
     SUM(week6) + SUM(week7) + SUM(week8) + SUM(week9) + SUM(week10) + 
     SUM(week11) + SUM(week12) + SUM(week13) 
FROM results 
WHERE username = '$username' 
group by username 

Это должно сделать трюк. (Предположение: Есть несколько строк для каждого пользователя Если каждый пользователь имеет только одну строку, чем функции суммы и группы по п можно опустить.)

+0

теперь у меня есть это, хотя ничего не показывается, когда я вернусь, и если я повторяю я получаю Resource ID # 4 – user1371500

+0

В самом деле, 'GROUP BY' может быть пропущено в любом случае, потому что вы только извлекаете строки для одного пользователя. –

+0

что бы это не заставило его распечатать? – user1371500

0
SELECT week1 + week2 + week3 + week4 + week5 + week6 + week7 + week8 + week9 + 
week10 + week11 + week12 + week13 as sumweeks 
FROM results WHERE username = '$username' 

будет достаточно

2

SUM() является агрегатной функцией, для добавления строк. Чтобы добавить столбцы, просто используйте +, хотя имейте в виду, что если какой-либо из столбцов имеет значение NULL, вы не можете получить ожидаемый результат.

SELECT IFNULL(week1, 0) + IFNULL(week2, 0) + IFNULL(week3, 0) AS sumweeks //etc 
Смежные вопросы