从mysql

时间:2017-07-31 10:47:26

标签: php mysql

您好我正在尝试制作一款小游戏,我需要为饮料的外观和味道添加一些观点。

将有7个人提供积分,所以在php中我需要为每个日期创建一个表,并且每个玩家只显示1个名称,但我需要为每个具有相同名称的行添加点数:

这是我到目前为止所拥有的。

  <?php     

    $pdo = Logbase::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);      
    $sql = 'SELECT DISTINCT start FROM grade';      
    $q = $pdo->query($sql);
    $q->setFetchMode(PDO::FETCH_ASSOC);?> 
<?php while ($r = $q->fetch()): ?>
 <table class="blueTable" align="center">

<thead>

<tr>
<th> <?php echo $r['start'] ?></th>
<th></th>
</tr>
</thead>
<?php endwhile; ?> 
<tbody>
<?php     

    $pdo = Logbase::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);      
    $sql = 'SELECT * FROM grade group by start, name';      
    $q = $pdo->query($sql);
    $q->setFetchMode(PDO::FETCH_ASSOC);

  ?> 
 <?php while ($r = $q->fetch()): ?>                 
<tr>
<td> <?php echo $r['name'] ?></td>
<td> <?php echo $r['drinks_fla'] + $r['drinks_view']  + $r['food'] + 
 $r['sam'] ?></td>
</tr>
<?php endwhile; ?> 
</tbody>
</table>

在我的结果中我可以看到每个玩家的1个名字,但是只添加了1行(第一个),所以我问我需要一个循环或者我的mysql中的东西?

丹尼斯-------- 10分
迈克尔-------- 6分

我想看 丹尼斯24分 Michale 12分

id --- start --- name ----- drinks_fla --- drinks_view

1 --- 31.07-2017 ---丹尼斯--- 5 --- 5
1 --- --- 31.07-2017丹尼斯--- 4 --- 3
1 --- --- 31.07-2017丹尼斯--- --- 5 2
2 --- --- 31.07-2017 --- Michale 5个--- 1个
2 --- --- 31.07-2017迈克尔--- 2 --- 4

1 个答案:

答案 0 :(得分:0)

$sql = 'SELECT * FROM grade group by start, name'; 

您已将结果与MySQL分组,因此只会为该组的属性调用一行。

尝试&#34; sum()&#34;获取所需列的总和:

$sql = 'SELECT name as name,sum(sum(drinks_fla),sum(drinks_view)) as sum FROM grade group by start, name';

MySQL将调用由第一个Property命令的所有行。所有具有相同第一个属性的行都使用第二个属性进行排序。

示例:

id---start--- name-----drinks_fla---drinks_view

1---31.07-2017---dennis---5---5
1---31.07-2017---dennis---4---3
1---31.07-2017---dennis---5---2
2---31.07-2017---Michale---5---1
2---31.07-2017---Michael---2---4

Result:
name----sum
dennis----24
Michale----6
Michael----6