如何对比前后数据库记录?实现按国家分组的城市列表添加换行
实现国家切换时添加额外换行的解决方案
实现这个需求的核心是跟踪上一个输出的国家名称,每次循环对比当前国家与上一个是否不同,若不同且不是第一个国家,就插入额外换行。修改后的代码如下:
<?php $resultaat = mysqli_query($connection, "SELECT * FROM locatie_eu ORDER BY country, city ASC"); $rij = mysqli_fetch_array($resultaat); // 初始化变量存储上一个国家,初始为空 $vorigeLand = ''; while ($rij) { // 不是第一个国家且当前国家与上一个不同时,输出额外换行 if ($rij['country'] != $vorigeLand && !empty($vorigeLand)) { print("<br><br>"); } print($rij['vlag']);?> : <?php print($rij['country']);?>, <b><a href="<?php print($rij['link']);?>" target="new"><?php print($rij['city']);?></a></b><br> // 更新上一个国家为当前国家 $vorigeLand = $rij['country']; $rij = mysqli_fetch_array($resultaat); } ?>
关键说明:
$vorigeLand用来记录上一次输出的国家,初始值为空,确保第一个国家前不会额外换行- 判断条件
$rij['country'] != $vorigeLand && !empty($vorigeLand)既避免了第一次循环触发换行,又能在国家切换时插入额外的<br><br> - 每次循环结束后必须更新
$vorigeLand的值,保证下一次对比的准确性
内容的提问来源于stack exchange,提问作者Robin Huyghebaert
相关产品推荐
相关产品推荐

