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
    字段。

    我究竟如何实现这一点?我试图寻找如何在循环中进行检查,但我不知道如何才能做到这一点。