2013-05-10 97 views
0

我對php比較陌生,並且在一個問題上陷入困境。我的index.php文件顯示一個狀態列表,並正確顯示這些狀態。每個州都有一個p_id字段,對應於按字母順序排列的狀態列表。不顯示來自正確父項目的數據的子項

我正在使用的數據庫有一個包含cat表中以下字段的表:p_id(父id),state(州名),city和id(孩子的id,它爲每個新狀態重置)。 這是我使用的填充狀態查詢:

select distinct state, p_id from cat order by state asc 

List_cities.php是點擊之後的狀態顯示下一個頁面。阿拉巴馬州是第一個按字母順序排列的州,所以會是父母(p_id)= 1。當我點擊阿拉巴馬州(或任何其他州)時,不會顯示任何城市。他們全部列在貓表中。

這是我用來顯示城市查詢:

select p_id, id, city, state from cat where p_id="'.$p_id.'" order by p_id, id 

任何幫助將不勝感激! 謝謝!

回答

1

想象一下,你有這樣的狀態表:

------------- 
id | state 
------------- 
1 | California 
2 | New York 
3 | Arizona 

和你CITY表所示:

------------------------------ 
id | state_id | name 
------------------------------ 
1 |  1  | Los Angeles 
2 |  1  | San Diego 
3 |  1  | San Jose 

正確的查詢檢索的狀態是:

SELECT id, state FROM states ORDER BY state ASC; 

並根據一個州檢索城市的正確查詢是:

SELECT id, name, state_id FROM cities WHERE state_id = ?; 

很明顯,你會使用PDO類來連接數據庫,因爲它比任何你可以寫的都更安全。查看pdo manual瞭解更多信息。那'?'實際上是你用PDO綁定的參數,所以不要讓它混淆你。

從我所瞭解的你已經創建了一個表,你指定了城市和州名。我肯定會把它們分開,然後像上面那樣創建兩個表格。

+0

非常感謝,薩瓦斯!我會閱讀pdo手冊,並嘗試您的建議。 – wilcan 2013-05-10 15:30:24

+0

請標記正確的答案,以便用戶可以瞭解哪個答案解決了您的問題。 @wilcan – Shaokan 2013-05-10 15:32:40

+0

不客氣,很高興它幫助:) – 2013-05-10 15:33:14

相關問題