子级不显示正确父级的数据

时间:2013-05-10 14:13:38

标签: php sql

我对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

任何帮助将不胜感激! 谢谢!

1 个答案:

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

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