2014-05-04 38 views
1

我有我的数据库中的表多数民众赞成构造成这样:MySQL的 - 在一个表总和列基于一个场

Week Team Player  Plants Score Ball Kills 
1  Team1 Player1.1 1  1  1 
1  Team1 Player1.2 2  1  0 
1  Team2 Player2.1 0  4  3 
1  Team2 Player2.2 3  1  5 
2  Team1 Player1.1 2  7  11 
2  Team1 Player1.2 2  2  0 
2  Team2 Player2.1 0  0  1 
2  Team2 Player2.2 2  1  1 

我试图输出一个表,其中我总结表的所有字段根据播放器(例如总和所有Player1.1值获得每一列的总)

因此,例如:

/团队/机/播放/ /植物/ /得分/ /球杀敌/ .....
/Team1// Player1.1// 3// 8// 12/.....
/Team1// Player1.2// 4// 3// 0/.....
/Team2// Player2.1 // 0// 4// 4/.....
/Team2// Player2.2// 5// 2// 6/.....

这是我到目前为止的代码。显然它只是输出整个表格。

$sql = "SELECT * FROM Table1"; 
$Data = mysql_query ($sql,$con); 

echo '<table class="db-table" cellpadding="0" cellspacing="0"> 

<tr> 
<th>Team</th> 
<th>Player</th> 
<th>Plants</th> 
<th>Ball Kills</th> 
<th>First Touch</th> 
<th>Fast Break</th> 
<th>Runner Score</th> 
<th>Tank Score</th> 
<th>Defender Score</th> 

</tr>'; 
while ($results = mysql_fetch_array ($Data)){ 
echo "<tr>"; 
echo "<td>" . $results['Team'] . "</td>"; 
echo "<td>" . $results['Player'] . "</td>"; 
echo "<td>" . $results['Plants'] . "</td>"; 
echo "<td>" . $results['Ball Kills'] . "</td>"; 
echo "<td>" . $results['First Touch'] . "</td>"; 
echo "<td>" . $results['Fast Break'] . "</td>"; 
echo "<td>" . $results ['Runner Score'] . "</td>"; 
echo "<td>" . $results['Tank Score'] . "</td>"; 
echo "<td>" . $results['Defender Score'] . "</td>"; 
echo "</tr>"; 
} 

echo "</table>"; 

我看我的问题的例子很多,但它并没有做我想做的,当我在把代码,我想不通为什么。我是新来的PHP,所以任何帮助将不胜感激。

+0

[**在新的代码,请不要使用'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)将帮助你决定哪个。 – Kermit

+0

对于初学者,您需要为$ sql关闭双引号。另外,你有一个PHP错误日志?如果是这样,你有任何错误或警告? –

+0

对不起,是的,在我的实际报价中有一个结束双引号,我刚刚在这里编辑了表名。这段代码确实有效,并且确实输出了整个表格。 – user3601494

回答

0

您可以使用使用group by

select 
t.Team, 
t.Player, 
sum(t.Plants) as Plants, 
sum(t.Score) as Score, 
sum(t.`Ball Kills`) as `Ball Kills` 
from table1 t1 
group by 
t.Team, 
t.Player 
0

试试这个查询:

SELECT 
t.Team,t.Player,sum(t.'Ball Kills') as 'Ball Kills',sum(t.Plants) as plants, 
sum(t.Score) as Score 
FROM Table1 t 
GROUP BY Team,player 
ORDER BY 'Ball Kills',plants 
相关问题