2012-01-05 37 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

天才你是Dipu!非常感謝你們,希望這些會幫助別人。 – echez 2012-01-06 00:32:26

1

您應該直接做在MySQL當您執行查詢(如果可能):

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

感謝您的答覆尼克拉斯,但查詢非常複雜,連接三個表。讓它像上面那樣返回結果一直很困難。直接從mysql進行分組沒有奏效。 – echez 2012-01-06 00:06:10

+0

我明白了。你能否展示你從你的文章中列出的SQL查詢中獲得的數組結構?你可以使用print_r($ array)或var_dump($ array)。如果給出數組結構,它將更容易回答你的問題:) – 2012-01-06 00:14:15

1

你可以選擇價格的總和,然後組分類彙總的類型。我在一個PHP腳本中使用了這個SQL語句;

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

然後我執行SQL語句並在一個簡單的foreach循環中回顯結果。它似乎對我很好。