簡體   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