繁体   English   中英

从MySQL表中选择并显示州和各个城市

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM