2013-07-31 46 views
0

我有一個SQL表,有兩個字段:城市和州。我想建立一個所有州和所有城市的簡單列表,但直到現在還不能。我想這樣的事情:從MySQL表中選擇並顯示狀態和相應的城市

<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 
} 
?> 
+0

您需要檢查查詢。它將顯示州和城市。你需要有任何state_id或類似的東西來知道哪個州是城市? –

+0

你的桌子是什麼樣的? – immulatin

回答

0

狀態可能會是

$row['states'] 

城市

$row['cities'] 
0

你獲取州和城市的陣列,併爲此你應該嘗試打印它們兩個:

while($row = mysqli_fetch_array($result)){ 
    echo $row['cities']."<br/>"; 
    echo $row['states']."<br/>"; 
} 

但仍然不足以給您所需的結果,因爲查詢不是按州分組的城市。但對於PHP部分,這是你必須做的。 如果你想與SQL幫助告訴我:P

0

假設每個數據庫返回的記錄保持一個狀態,一個城,一成方法是

SELECT states,cities FROM table ORDER BY states, cities 

我不知道你需要DISTINCT,除非你可能有重複的記錄。這應該給按州和州排序的結果,按城市排序。

您可以跟蹤上次看到的狀態的循環,當它更改時,關閉最後一個狀態的條目(</ul></li>)。一定不要在第一個($ previousState =='')上這樣做。開始新的狀態,輸出第一個城市,並繼續輸出城市,直到狀態再次改變。

+0

是的,我有重複的記錄。我會嘗試遵循這個方向。 –

相關問題