我有一个已建立的MySQL数据库,该数据库可跟踪程序运行时的所有会话,并跟踪各种变量。
我不太擅长SQL,我想看看是否有可能从1个特定用户那里获取所有数据以及我想要的变量数据,然后将它们全部加在一起。
数据库的结构看起来像这样
id - username - data1- data2- data3- timestamp
0 - name1 - 0- 0- 0-10/10/2010
0 - name2 - 0- 0- 0-10/10/2010
0 - name3 - 0- 0- 0-10/10/2010
0 - name1 - 0- 0- 0-10/10/2010
0 - name1 - 0- 0- 0-10/10/2010
0 - name3 - 0- 0- 0-10/10/2010
那只是一个例子,我想在PHP表中显示信息,每个用户的数据总数,按照我目前的设置进行,它将为每个会话在表中创建一行由用户而不是全部添加。这是我的SQL调用
$sql = 'SELECT *
FROM database
ORDER BY data1 DESC';
我的php代码是
<?php
$no = 1;
$runtime = 0;
$profit = 0;
$deaths = 0;
while ($row = mysqli_fetch_array($query))
{
$amount = $row['profit'] == 0 ? '' : number_format($row['profit']);
echo '<tr>
<td>'.$no.'</td>
<td>'.$row['username'].'</td>
<td>'.convert_seconds($row['runtime']).'</td>
<td>'.number_format($row['profit']).'</td>
<td>'.$row['deaths'].'</td>
</tr>';
$runtime += $row['runtime'];
$profit += $row['profit'];
$deaths += $row['deaths'];
$no++;
}?>
我知道某些变量不匹配,这只是我的代码的一个示例。如何获取它以从数据库中获取数据并为每个用户名加总所有会话并显示出来?
答案 0 :(得分:0)
您需要使用«GROUP BY»子句,然后将相关列求和。
赞:
SELECT username, SUM(data1), SUM(data2), SUM(data3)
FROM database
GROUP BY username