我试图根据会面名称列出赛马会的结果。我希望它看起来像这样:
比赛(日期)
RACE NAME
RACE NAME
我已经完成了一些工作,但它只列出了第一名的马并进入下一场比赛。我无法弄清楚如何列出该比赛的每个位置。
当前代码:
<?php
$sql = "SELECT DISTINCT * FROM racing WHERE `meet` = '$meet' LIMIT 1";
$query = mysql_query($sql) or die( mysql_error() . "<br />" . $sql );
while($row = mysql_fetch_array($query)){
$date= $row['date'];
echo "<h2><strong>$meet Results</strong> ($date)</h2>";
}
?>
</h2>
<?php
$sql = "SELECT *
FROM `racing`
WHERE `meet` = '$meet'
GROUP BY `race`
ORDER BY `place` "; $query = mysql_query($sql) or die( mysql_error() . "<br />" . $sql );
while($row = mysql_fetch_array($query)){
$race= $row['race'];
$place= $row['place'];
$horse= $row['horse'];
$sire= $row['sire'];
$farm= $row['farm'];
echo "
<b>$race</b><br>
$place <a href='horse.php?horse={$row['horse']}'>$horse</a> (<a href='sire.php?sire={$row['sire']}'>$sire</a>) owned by <a href='owners.php?farm={$row['farm']}'>$farm</a><br>
"; }
?>
答案 0 :(得分:0)
在这种情况下,GROUP BY race
子句无效,因为没有使用聚合函数(即COUNT()
)。
第二个SQL语句的结果实际上不会区分每个种族。因此,您的结果将如下所示:
Race1
1st <a href='horse.php?horse=Horse1>Horse1</a> (<a href='sire.php?sire=Sire1'>Sire1</a>) owned by <a href='owners.php?farm=Farm1'>Farm1</a><br>
Race1
2nd <a href='horse.php?horse=Horse2>Horse2</a> (<a href='sire.php?sire=Sire2'>Sire2</a>) owned by <a href='owners.php?farm=Farm2'>Farm2</a><br>
如您所见,它不会发布您想要的相同格式。我的建议是删除SQL查询中的GROUP BY race
,然后在最后一个while循环中添加一个检查以查看它是否仍然在该种族上,如果是,则添加第二行输出,而不是{已添加{1}}字段。