我有一个用户数据库。每个用户必须在注册时输入街道地址,州,城市,邮政编码。
我的数据库表中还有州,城市,县,邮政编码。这些表格中包含所有美国州,县,城市和拉链码。
-Zipcodes are linked to cities only.
-Cities are linked to counties and states. Each city has unique city_id
-Counties are linked to states only. Each county has unique county_id
-Each state has unique state_id
我专门针对地址的PHP页面包括:
-SELECT for States (state_name as text; state_id as value)
-TEXTBOX for City (with only city_name as value)
-TEXTBOX for Zipcode
我使用PHP Session来存储用户输入的值,以防表单验证失败。
当用户提交我希望能够在数据库中放入city_id(因为该id还将包含county_id和state_id)。但是用户提交的是city_name。 我怎么能匹配呢?
我是否需要在数据库中搜索表单验证,看看我是否可以根据用户输入的内容找到该城市?我想我需要完美匹配。
根据用户输入的内容使用自动完成并使用jquery和ajax城市(包括city_id)检索,然后将city_id值存储在某处?
我该怎么做?
答案 0 :(得分:1)
根据city_id
或city_name
获取zipcode
的查询可能如下所示
SELECT c.city_id
FROM cities c JOIN zipcodes z
ON c.city_id = z.city_id
WHERE c.city_name = 'Baltimore'
OR z.zipcode = '21201'
GROUP BY c.city_id
更新通过其中一个邮政编码获取city_id
SELECT city_id
FROM zipcodes
WHERE zipcode = '21201'
GROUP BY city_id
这是 SQLFiddle 演示