【问题标题】:How to match specific elements that user enters with database? -php/mysql/ajax如何将用户输入的特定元素与数据库匹配? -php/mysql/ajax
【发布时间】:2013-07-19 22:49:35
【问题描述】:

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

我的数据库中还有州、城市、县、邮政编码的表格。这些表格中填满了美国所有可用的州、县、市和邮政编码。

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

我该怎么做?

【问题讨论】:

    标签: php mysql ajax validation


    【解决方案1】:

    根据city_namezipcode 获取city_id 的查询可能如下所示

    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演示

    【讨论】:

    • @Cristian 有帮助吗?您的问题需要更多帮助吗?
    • 确实有帮助,但我需要更多帮助。基本上我只是想确保当我使用指定的邮政编码搜索 city_name 时,我应该能够只获得那个 city_id 并确保它是正确的。除了这个,我还能做些什么来让它变得更好?
    • @Cristian 查看更新后的答案。如果这是您要查找的内容,请考虑upvote/accept 答案。
    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多