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。当我点击阿拉巴马州(或任何其他州)时,没有显示任何城市。它们都列在 cat 表中。

这是我用来显示城市的查询:

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

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

4

1 回答 1

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 手册以获取更多信息。那 '?' 实际上是您与 PDO 绑定的参数,所以不要让它混淆您。

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

于 2013-05-10T15:10:13.300 回答