如何仅使用PHP循环从MySQL回显一次值

时间:2018-07-06 13:26:24

标签: php mysql

MySQL表的设置如下:

  

id |年|名称|文件名|类别|说明

当前,我的PHP是这样的:

while($row = mysql_fetch_array($result)) {
    $yr = $row["year"]; 
    $nm = str_replace('"', '', $row["name"]);
    $fn = $row["filename"];
    $cat = $row["category"];
    $desc = str_replace('"', '', $row["description"]);
    echo "<year id=\"$yr\">\r\n";
    echo "<entry id=\"$nm\" filename=\"$fn\" category=\"$cat\" description=\"$desc\">\r\n";
    echo "</entry></year>\r\n";
}

每次输入都会花一年的时间。我只希望年份回声一次,然后列出该年份的每个名称。

1 个答案:

答案 0 :(得分:0)

出于这个答案的目的,我简化了您的代码。 您可以使用PHP if语句检查年份是否仍然相同,或者年份是否已更改。

要使用此功能,请确保您的SQL查询按年份对结果进行排序

$oldyr = ""; //Initiate olodyr variable


while(...){ //The loop used to fetch
   $yr = $row["year"];

   if(!($yr === $oldyr)){ //The year has changed, so close the old one and open a new one
      echo('</year>');

      echo "<year id='$yr'>\r\n";
      $oldyr = $yr;
   }
//Print other data, such as names

}

也请尝试使用mysqli,因为已弃用mysql,如您所见here