子节点没有显示来自正确父节点的数据


Child not displaying data from correct parent

我对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绑定的参数,所以不要让它混淆了你。

根据我的理解,您已经创建了一个表,其中指定了城市和州名。我肯定会把它们分开,并像上面那样创建两个表。