我对php比较新,而且我遇到了一个问题。我的index.php文件显示状态列表,并正确显示这些状态。每个状态都有一个p_id
字段,对应于按字母顺序排列的状态列表。
我正在使用的数据库有一个表,其中包含cat表中的以下字段:p_id(父ID),state(状态名称),city和id(child的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
任何帮助将不胜感激! 谢谢!
答案 0 :(得分:1)
想象一下,你有一个像这样的STATE表:
-------------
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绑定的参数,所以不要让它混淆你。
根据我的理解,您创建了一个表格,您可以在其中指定城市和州名称。我肯定会将它们分开,并像上面那样创建两个表格。