如何使用mysqli-php在特定值更改时中断输出

如何使用mysqli-php在特定值更改时中断输出,php,mysqli,Php,Mysqli,我正在建立一个网站,列出过去24年保龄球比赛的统计数据。使用以下代码生成一个显示所有数据的长单表。当$row['SEASH']值发生变化时,即从1990-1991年到1991-1992年,我想在表中加一个分隔符,对于随后的每个季节变化,在季节之间回显一条html水平线,或者将数据库中的季节值(即2013-2014年)放在每个表段的顶部。在网上搜索了一周后,我还没有找到答案。这是我现在的密码。需要是mysqli $result = mysqli_query($conn,"SELECT * FROM

我正在建立一个网站,列出过去24年保龄球比赛的统计数据。使用以下代码生成一个显示所有数据的长单表。当$row['SEASH']值发生变化时,即从1990-1991年到1991-1992年,我想在表中加一个分隔符,对于随后的每个季节变化,在季节之间回显一条html水平线,或者将数据库中的季节值(即2013-2014年)放在每个表段的顶部。在网上搜索了一周后,我还没有找到答案。这是我现在的密码。需要是mysqli

$result = mysqli_query($conn,"SELECT * FROM members INNER JOIN scores ON members.id=scores.memberID WHERE format LIKE '%s%' ORDER BY year, STR_TO_DATE( month, '%b' ), format ASC;");

echo "<table border='0'>
<tr>
<th>Name</th>
<th>Hometown</th>
<th>Month</th>
<th>Year</th>
<th>Season</th>
<th>Center</th>
<th>Center City</th>
<th>Format</th>
</tr>";

foreach($result as $row) {

  echo "<tr>";
  echo "<td>" . $row['firstName'] . " ". $row['lastName'] . "</td>";
  echo "<td>" . $row['hometown'] . "</td>";
  echo "<td>" . $row['month'] . "</td>";
  echo "<td>" . $row['year'] . "</td>";
  echo "<td>" . $row['season'] . "</td>";
  echo "<td>" . $row['center'] . "</td>";
  echo "<td>" . $row['centerCity'] . "</td>";
  echo "<td>" . $row['format'] . "</td>";
  echo "</tr>";
}

echo "</table>";

mysqli_close($conn);
$result=mysqli\u query($conn,“SELECT*FROM members-internal-JOIN-scores-ON members.id=scores.memberID格式,如“%s%”按年份排序,STR\u-TO\u-DATE(月,'%b'),format ASC;”;
回声“
名称
家乡
月
年
时令
居中
中心城市
格式
";
foreach($结果为$行){
回声“;
回显“$row['firstName']”。$row['lastName']”;
回显“$行[“家乡]”;
回显“$行[“月]”;
回显“$行['年]”;
回声“$row[“季节]”;
回显“$row['center']”;
回显“$row['centerCity]”;
回显“$row['format']”;
回声“;
}
回声“;
mysqli_close($conn);

答案实际上已经给出了,但它看起来像是您使用php的新功能,因此这里有一个小示例,我希望它对您有用。 您需要插入一些if语句,以检查年份是否有任何变化。您要执行的任何其他检查也是如此

这是你可以做的

<?php
    $lastYear = null;//you can also set the first year manually of course
    foreach($result as $row) {
         //set the first year
         if($lastYear == null){$lastYear = $row['year'];}

         //check if the year changed or not
         if($lastYear == $row['year']){
             //if the year didnt change... do something
         }else{
             //your year changed... do something different
             $lastYear = $row['year']; //update your 'last'year
         }
    }
?>


我希望这会对你有所帮助。

只要在你的循环中记录下这一年。当它改变时,创建一个新行,等等;与其创建这个巨大的表,不如创建一个条件表来按年份浏览(即1991-1992、1992-1993等)?如果这个示例非常有用的话。我正在查看我的数据库,因为某些季节的第一条记录没有显示在输出中。希望确保数据没有问题,因为它不会每年都发生。此外,我修改了代码,将季节值放在每个表段的顶部,但对于最后一段不起作用。假设这与记录的结束有关。是的,我对PHP相当陌生,但已经有很长时间了。刚刚完成我的50周年结婚纪念日。