2012-01-05 5 views
1

Я пытался получить итоговую сумму подгруппы ниже, используя метод в принятом ответе здесь: how to group result in subgroups in php, но безрезультатно. Кто-нибудь, пожалуйста, помогите.Результаты группы в подгруппах

Я хочу это:

+---------------+-----------------+ 
| Type   | Price   | 
+---------------+-----------------+ 
| Music   | 19.99   | 
| Music   | 3.99   | 
| Music   | 21.55   | 
| Toy   | 89.95   | 
| Toy   | 3.99   | 
+---------------+-----------------+ 

отображается как это:

Music | 45.53 
Toy | 93.94 

в группе и итога.

ответ

0

Попробуйте это ...

// Get the sum 
$group = array(); 
foreach($rows as $r){ 
    $group[$r->type] = $group[$r->Type] + $r->Price; 
} 

// Display 
foreach($group as $type=>$price){ 
    echo "Type:".$type." Price: ".$price; 
} 
+1

Genius вы Dipu! Большое спасибо, ребята, надеюсь, это поможет кому-то другому. – echez

1

Вы должны сделать это непосредственно в MySQL при выполнении запроса (если это возможно):

SELECT DISTINCT Type, SUM(Price) as Total FROM table_name GROUP BY Type 
+0

Спасибо за ответ Никлас, но запрос является очень сложным и соединяет три таблицы. Это была борьба за то, чтобы вернуть результат, как указано выше. Группировка непосредственно из mysql не сработала. – echez

+0

Я вижу. Не могли бы вы показать структуру массива, который вы получаете из SQL-запроса, указанного в вашем сообщении? Для этого вы можете использовать print_r ($ array) или var_dump ($ array). Будет намного проще ответить на ваш вопрос, если будет задана структура массива :) –

1

Вы можете выбрать сумму цен, то группа подытогов по типу. Я использовал этот оператор SQL в скрипте PHP;

SELECT SUM(Price) AS Total, Type FROM Table GROUP BY Type 

Затем я выполнил инструкцию SQL и повторил результаты в простом цикле foreach. Кажется, что со мной все в порядке.

Смежные вопросы