按名称列出比赛结果

时间:2013-08-25 03:34:35

标签: php sql database

我试图根据会面名称列出赛马会的结果。我希望它看起来像这样:


比赛(日期)

RACE NAME

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

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

    3. 我已经完成了一些工作,但它只列出了第一名的马并进入下一场比赛。我无法弄清楚如何列出该比赛的每个位置。

      当前代码:

      <?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>
      
      "; }
      
      ?>
      

1 个答案:

答案 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}}字段。