MySQL根据GEO位置返回不同的值?

时间:2010-12-13 15:03:29

标签: php mysql

我有几个页面直接访问我的数据库并从表中获取值。

现在,根据用户的地理位置,我们希望返回不同的值。

我有一个获取地理位置的PHP脚本,但我试图找到一种方法来避免跟踪访问数据库的每个页面以添加此逻辑。

我意识到如果该网站使用的是MVC架构,我可以将逻辑添加到模型中。不幸的是情况并非如此。

所以我的问题是,我唯一的选择是将这个逻辑添加到从数据库访问该数据的每个页面。还是有更好的方法让我不知道?

P.S。我的问题标题可能不是我问题的最佳描述,但我不确定如何说出来。

1 个答案:

答案 0 :(得分:0)

您无需将检测逻辑添加到访问数据的每个页面,而是添加到公共页面,例如索引页面。你有一个共同的页面吗?

就像webbiedave所说,你必须对你的查询进行一些更改才能改变数据。

我在一个项目中实现了基于用户位置的数据显示。我们必须显示一些导师将要参加的在线课程列表。根据浏览器/注册用户的地理位置(国家/地区)显示类列表。用户区域(我想在一个国家内)不会改变这样做的基本逻辑。我们也没有使用任何框架,所以我认为这可能对你有用: -

这大致与我们所做的相同: -

<强> 1。地理位置操纵部分 -
我们有一个index文件(就像一个框架的前端控制器),它为每个请求运行(对于每个模块),它具有所有与用户地理位置操作相关的代码。 以下是有关操纵代码的要点 -
- 我们使用php库进行检测 - 检测用户位置(我们的国家/地区)并将其存储在会话中 - 如果已经存储在会话中,则不要再次/每次检测 - 在用户注销时清除存储的地理位置并再次检测。

<强> 2。与您的查询相关的位置相关条件
- 现在您只需在一个位置将检测到的位置添加到查询中,将其放入函数中,向其添加位置参数并从模块中调用它。尽可能重复使用该功能。