Php 从MySQL表中选择并显示州和各自的城市
我有一个包含两个字段的SQL表:城市和州。我想建立一个所有州和各个城市的简单列表,但直到现在还不能。我想要这样的东西:Php 从MySQL表中选择并显示州和各自的城市,php,mysql,Php,Mysql,我有一个包含两个字段的SQL表:城市和州。我想建立一个所有州和各个城市的简单列表,但直到现在还不能。我想要这样的东西: <ul> <li>New York <ul> <li>Albany</li> <li>Buffalo</li> <li>New York City</li> </ul> </li> <li>Ill
<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/>";
}
while($row=mysqli\u fetch\u数组($result)){
echo$row['cities']。“
”;
echo$row['states']。“
”;
}
但这仍然不足以给出所需的结果,因为查询没有按州对城市进行分组。但是对于php部分,这是您必须做的。
如果您需要sql方面的帮助,请告诉我:p假设返回的每个DB记录包含一个州和一个城市,一种方法是
SELECT states,cities FROM table ORDER BY states, cities
我不确定你是否需要清晰的,除非你可能有重复的记录。这将给出按州排序的结果,以及在州内按城市排序的结果
您可以跟踪最后一个状态的循环,当它发生变化时,关闭最后一个状态的条目(
)。请确保不要在第一次执行此操作($previousState='')。启动新状态,输出第一个城市,并继续输出城市,直到状态再次更改。您需要检查查询。它将展示各州和城市。你需要有任何州的id,或者类似的东西,才能知道哪个州是城市?你的表是什么样子的?是的,我有重复的记录。我将沿着这个方向尝试一些东西。