2013-03-16 45 views
0

我的數據(簡化)看上去像顯示他們....添加MySQL的條目在一起並在表

------------------------ 
| key | id | minspld | 
------------------------ 
| 1 | 400 | 90 | 
| 2 | 400 | 40 | 
| 3 | 401 | 38 | 
| 4 | 401 | 90 | 
| 5 | 402 | 90 | 
| 6 | 402 | 89 | 
| 7 | 403 | 77 | 
| 8 | 403 | 15 | 
| 9 | 404 | 90 | 
----------------------- 

我試圖做的....

  • 對於每個id,將他們所有的minspld條目加在一起
  • 將它們顯示在上面的表格中,但每個id只顯示一次,而minspld列顯示每個ID的總數。

下面是我使用的時刻是什麼,我分開顯示的所有條目(例如,每個人出現了兩次)

<table><thead><tr><th>ID</th><th>Mins Played</th></tr></thead> 
<tbody> 

<?php 
$queryget = mysql_query("SELECT * FROM mlsstats ORDER BY id ASC") or die(mysql_error()); 

while ($row = mysql_fetch_assoc($queryget)) 
{ 
    $id = $row['id']; 
    $minspld = $row['minspld']; 

    echo "<tr>"; 
    echo "<td>".$id."</td>"; 
    echo "<td>".$minspld."</td>"; 
    echo "</tr>"; 
} 
?> 

</tbody></table> 

我怎麼會寫這樣使每個ID只顯示一次在HTML中,但與他們所有的minspld條目的總計? (例如,ID 400將有130. ID 401將有128等)

如果這不清楚,請讓我知道..並感謝您的任何幫助。

+1

[在新代碼**請不要使用'mysql_ *'功能**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-03-16 01:58:47

回答

2

請嘗試更改您的查詢:

SELECT id, SUM(minspld) AS minspld FROM mlsstats GROUP BY id ORDER BY id ASC 
+0

完美!非常感謝。我知道會有一個簡單的方法來做到這一點,但無論我嘗試什麼,它都會一直失敗。 – Cully 2013-03-16 02:03:33

1

你不必使用循環這一點。您可以簡單地通過查詢 執行此操作。只需運行查詢並獲取兩列。 ID和總

SELECT 
    m.id, 
    SUM(minspld) AS TCount 
FROM mytable AS m 
GROUP BY m.id 
+0

是的,這就是我在這裏問的原因..因爲我只能通過愚蠢的循環來做到這一點,我知道會有一個簡單的方法。我現在正在使用單個select語句工作。謝謝! – Cully 2013-03-16 02:17:03

相關問題