我对php比较陌生,并且在一个问题上卡住了。php文件显示一个状态列表,并正确显示这些状态。这些状态中的每一个都有一个p_id
字段,对应于按字母顺序排列的状态列表。
我使用的数据库有一个表,在cat表中包含以下字段:p_id(父id), state(州名),城市和id(子id,每个新状态重置)。这是我用来填充状态的查询:
select distinct state, p_id from cat order by state asc
List_cities.php是单击某个州后显示的下一个页面。阿拉巴马是按字母顺序排列的第一个州,所以应该是parent (p_id)=1。当我单击Alabama(或任何其他州)时,不会显示任何城市。它们都列在cat表中。
这是我用来显示城市的查询:
select p_id, id, city, state from cat where p_id="'.$p_id.'" order by p_id, id
任何帮助都将非常感激!谢谢!
假设您有一个这样的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手册了解更多信息。"吗?'实际上是你与PDO绑定的参数,所以不要让它混淆了你。
根据我的理解,您已经创建了一个表,其中指定了城市和州名。我肯定会把它们分开,并像上面那样创建两个表。