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";
}
每次输入都会花一年的时间。我只希望年份回声一次,然后列出该年份的每个名称。
答案 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。