需要你的大力帮助。我需要你们所有好人的建议。
我有一些内容只需要向少数几个国家显示。我可以使用 Geoip 获取用户所在的国家/地区。我将我的内容存储在 MySQL 数据库中,并带有 country_code 字段。国家代码可以为空,也可以为任何单个代码或一组逗号分隔值
我想做的是,
- 检查 country_code,如果它为空,则为所有用户显示该内容。
- 如果 country_code 不为空且只有一个值,则仅显示给定 country_code 用户的内容。
- 如果 country_code 是一组逗号分隔的值,则显示所有逗号分隔的国家用户的内容。
我有两种选择
分别为国家添加数据列
each
并显示内容,例如three columns
三个国家美国,英国,澳大利亚,如果用户的位置是美国,$sql=mysql_fetch_array(mysql_query("SELECT * FROM content_table WHERE US=='$country_code'"))
;将单列的国家数据添加为国家代码并存储美国、英国、澳大利亚,如果用户的位置是美国,
$sql=mysql_fetch_array(mysql_query("SELECT * FROM content_table WHERE country_code!=''")); $pieces = explode(",", $sql['country_code']); foreach($pieces as $val){ if($country_code=="US") //display content }
注意:国家数量可能会根据我的需要而有所不同
克服这个问题的最佳做法是什么,
- 对不同的国家使用不同的列进行快速搜索,但我认为添加更多列并不好
- 使用单列并迭代逗号分隔值需要更多计算
我该怎么办..??请就此给我建议..或者你有什么比这更好的主意吗..?谢谢