Php 只需显示一个结果
我有一个代码,它显示了一个运动员列表和他们在比赛中的分数:Php 只需显示一个结果,php,mysql,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_ass
<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是每个玩家的唯一数字,每个玩家都有一个
谁能做到这一点?只需使用mysql
min
函数并按id分组:
SELECT playeridfield, playernamefield, MIN(pointsfield) AS pointsfield FROM `pointstable`
WHERE `contestfield` = 1 GROUP BY `playeridfield` ORDER BY `pointsfield` ASC
尝试将SQL查询更改为:
$result=mysql_query("SELECT * FROM `pointstable` WHERE `contestfield` = 1 ORDER BY `pointsfield` ASC LIMIT 1");
LIMIT 1
应该使查询只返回一行。在LIMIT 1结尾处将此添加到SQL查询中,我甚至会执行LIMIT 0,1
以确保为最上面的行设置了偏移量。默认偏移量为0。