[英]Select and show states and respective cities from MySQL table
我有一个包含两个字段的SQL表:City和State。 我想建立一个包含所有州和所有各个城市的简单列表,但是直到现在还不能。 我想要这样的东西:
<ul>
<li>New York
<ul>
<li>Albany</li>
<li>Buffalo</li>
<li>New York City</li>
</ul>
</li>
<li>Illinois
<ul>
<li>Chicago</li>
<li>Rockford</li>
</ul>
</li>
</ul>
我做了以下选择,但只列出了状态。 找不到显示各自城市的方法:
<?php
$result = mysqli_query($con,"SELECT DISTINCT states,cities FROM table ORDER BY states");
while($row = mysqli_fetch_array($result))
{
// show here
}
?>
状态可能是
$row['states']
城市
$row['cities']
您正在将州和城市提取到阵列中,因此您应该尝试同时打印它们:
while($row = mysqli_fetch_array($result)){
echo $row['cities']."<br/>";
echo $row['states']."<br/>";
}
但这仍然不足以为您提供所需的结果,因为查询没有按州对城市进行分组。 但是对于php部分,这是您必须要做的。 如果您需要有关SQL的帮助,请告诉我:p
假设返回的每个数据库记录都拥有一个州和一个城市,则一种方法是
SELECT states,cities FROM table ORDER BY states, cities
我不确定您是否需要DISTINCT,除非您可能有重复的记录。 那应该给出按州排序的结果,以及在州内按城市排序的结果。
您可以跟踪看到的上一个状态的循环,并在其更改时关闭上一个状态的条目( </ul></li>
)。 确保不要在第一时间执行此操作($ previousState =='')。 启动新状态,输出第一个城市,并继续输出城市,直到状态再次更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.