2009-09-29 39 views
0

我有怎麼樣了以下行的表總結值...合併重複成一排,並使用PHP

ID  | TITLE | ARTIST | ADDED    | HITS | HITS THIS WEEK 
-------------------------------------------------------------------------------- 
7505 | Track 2 | Artist 1 | 2009-08-24 10:32:41 | 1539 | 2 
7483 | Track 2 | Artist 1 | 2009-08-23 16:58:35 | 1450 | 3 
7324 | Track 1 | Artist 1 | 2009-08-14 11:28:18 | 5291 | 1 
7320 | Track 1 | Artist 1 | 2009-08-14 10:24:17 | 2067 | 1 

我想要做的就是是有重複的加起來hitshits this week並顯示爲一行。

我想獲取MySQL數據,因爲它(與重複),然後使用PHP我想總結重複作爲echo'ing一行。

有人能告訴我如何去做這件事嗎?

編輯:

繼承人我當前的SQL查詢...

SELECT `files`.`file_id` , `files_meta`.`title` , `files_meta`.`artists` , `files`.`added` , `files`.`uniquehits` , `files`.`uniquehits_week` , `files_meta`.`filename` 
FROM promo_artists 
INNER JOIN promo_files ON promo_artists.id = promo_files.artist_id 
INNER JOIN files ON files.file_id = promo_files.file_id 
INNER JOIN files_meta ON files.file_id = files_meta.file_id 
WHERE username = '$username' ORDER BY `files`.`added` DESC 

回答

2

我傾向於這樣做在SQL:

SELECT track, artist, SUM(hits) AS hits, SUM(hits_this_week) AS hits_this_week 
    FROM Atable 
GROUP BY track, artist; 

這節省了做計算的PHP,並減少PHP和數據庫管理系統之間的通信。

+0

從我對這個問題的理解中,他想要按原樣獲取數據(出於某種原因,我們忽略了):「我想獲取mysql數據(與重複數據),然後使用php 「 我不同意這個說法,你的解決方案對我來說似乎是正確的,但也許Imran可以解釋他爲什麼要這樣的數據? – MaxiWheat

+0

是的 - 我故意提出一種替代解決方案。如果他確實想用PHP來做,那很好;然後我的解決方案不適用。我認爲亞當弗里斯比的解決方案可能適用於一些小問題;我沒有看到他的代碼如何將這一行分割成幾個位,或者在本週處理命中與命中。 –

0
foreach($rows as $row) { 
$data[$artist][$track] += $hits; 
}