如何匹配用户输入的特定元素与数据库? -php / MySQL的/ AJAX

时间:2013-07-20 20:55:58

标签: php mysql ajax validation

我有一个用户数据库。每个用户必须在注册时输入街道地址,州,城市,邮政编码。

我的数据库表中还有州,城市,县,邮政编码。这些表格中包含所有美国州,县,城市和拉链码。

-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值存储在某处?

我该怎么做?

1 个答案:

答案 0 :(得分:1)

根据city_idcity_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 演示