2015-08-14 3 views
0

Я не знаю, как суммировать значения из базы данных. У меня много идентификаторов задач в моем массиве $alltas. В базе данных мне нужно суммировать все эти задачи. Я попытался сделать это:Суммируя значения из базы данных

foreach ($alltas as $keyy => $values) { 
    $totalh = mysql_query("SELECT SUM(task_log_hours) AS hours FROM dotp_task_log WHERE task_log_task = '$values'"); 
    $totalh = mysql_fetch_array($totalh); 
} 

$values это идентификатор задачи. Проблема в том, что этот скрипт суммируется только для одного и того же идентификатора. Мне нужно суммировать все идентификаторы, которые имеет массив $alltas. Является ли это возможным? База данных выглядит следующим образом:

task_id | task_hours 
300  | 0.30 
300  | 2.30 
310  | 1 

SO должно быть равно 3,60. С моим кодом он суммируется только с тем же идентификатором, что и 2.60. Пожалуйста, помогите

+0

Я думаю, что вы ищете 'group by task_log_task'! – Jeff

+1

вы переустанавливаете значение снова и снова в цикле, чтобы вы никогда не получили правильный результат. –

+0

Вы используете то же имя переменной 'totalh' за все время. Таким образом, более поздний будет охватывать первый. –

ответ

4

изменить запрос в это

"select sum(task_log_hours) as hours from dotp_task_log where task_id in (" . join(',',$alltas) . ")"; 

и это не потребуется каких-либо foreach.