只显示PHP的一个结果

时间:2014-02-12 20:42:16

标签: php mysql

我有这个代码,在竞赛中显示一个玩家及其积分列表:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
 <?php
    $result=mysql_query("SELECT * FROM `pointstable` WHERE `contestfield` = 1 ORDER BY `pointsfield` ASC");
    while ($info=mysql_fetch_assoc($result)) {
        $playerid=$info['playeridfield'];
        $playername=$info['playernamefield'];
        $pointsfield=$info['pointsfield'];
     ?>

  <tr><td style="text-align:center; padding-bottom:5px" valign="middle"><?=$playername?> made <?=number_format($pointsfield)?></td></tr>

<?php } ?>
</table>

这将显示完整列表,但是当用户播放多次时,它会显示他拥有的所有点...

所以我想要的只是显示第一个值(在这种情况下,因为比赛的目标是获得最低分,所以最低点) playeridfield 是每个值的唯一编号玩家,每个玩家都有一个。

谁能做到这一点?

3 个答案:

答案 0 :(得分:2)

在最后的LIMIT 1

中将此问题添加到您的SQL查询中

答案 1 :(得分:1)

只需使用mysql min函数并按ID分组:

SELECT playeridfield, playernamefield, MIN(pointsfield) AS pointsfield FROM `pointstable` 
WHERE `contestfield` = 1 GROUP BY `playeridfield` ORDER BY `pointsfield` ASC

答案 2 :(得分:1)

尝试将SQL查询更改为:

$result=mysql_query("SELECT * FROM `pointstable` WHERE `contestfield` = 1 ORDER BY `pointsfield` ASC LIMIT 1");

LIMIT 1应该这样做,所以查询只返回一行。