Php 按比赛名称列出比赛结果
我试图根据赛马会的名称列出赛马会的结果。我希望它看起来像这样:Php 按比赛名称列出比赛结果,php,sql,database,Php,Sql,Database,我试图根据赛马会的名称列出赛马会的结果。我希望它看起来像这样: 赛马会(日期) 种族名称 农场拥有的马(公马) 农场拥有的马(公马) 农场拥有的马(公马) 种族名称 农场拥有的马(公马) 农场拥有的马(公马) 我做了一些工作,但它只列出了第一名的马,并进入下一场比赛。我不知道如何列出那场比赛的每一个名次 当前代码: <?php $sql = "SELECT DISTINCT * FROM racing WHERE `meet` = '$meet' LIMIT 1"; $query
赛马会(日期) 种族名称
我做了一些工作,但它只列出了第一名的马,并进入下一场比赛。我不知道如何列出那场比赛的每一个名次 当前代码:
<?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>
"; }
?>
在这种情况下,
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>
Race1
第一个()由
竞赛1
第二个()由
正如您所看到的,它不会发布您想要的相同格式。我的建议是删除SQL查询中的
groupbyrace
,然后在最后一个while循环中添加一个检查,以查看它是否仍在该竞赛中,如果是,则添加第二行输出,而不添加race
字段。我究竟如何实现这一点?我试图寻找如何在循环中进行检查,但我不知道如何才能做到这一点。