0

我正在尝试根据比赛的名称列出赛马比赛的结果。我希望它看起来像这样:


比赛(日期)

种族名称

  1. 农场拥有的马(父亲)
  2. 农场拥有的马(父亲)
  3. 农场拥有的马(父亲)

种族名称

  1. 农场拥有的马(父亲)
  2. 农场拥有的马(父亲)

我已经完成了它的工作,但它只列出了第一名的马并进入下一场比赛。我不知道如何列出那场比赛的每个名次。

当前代码:

<?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>

"; }

?>
4

1 回答 1

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>

如您所见,它不会发布您想要的相同格式。我的建议是删除GROUP BY raceSQL 查询中race

于 2013-08-25T04:05:06.477 回答