あなたからの大きな助けが必要です。善良な皆さんからのアドバイスが必要です。
いくつかの国にのみ表示する必要があるコンテンツがあります。Geoip を使用してユーザーの国を取得しても問題ありません。country_code フィールドを使用してコンテンツを MySQL データベースに保存しています。国コードは空にすることも、単一のコードまたはグループにすることもできます。コンマ区切り値
私がやりたいことは、
- country_code を確認し、空の場合は、そのコンテンツをすべてのユーザーに表示します。
- country_code が空ではなく、値が 1 つのみの場合、指定された country_code ユーザーのコンテンツのみを表示します。
- country_code がカンマ区切り値のグループの場合、カンマ区切りのすべての国のユーザーのコンテンツを表示します。
これを行うには2つのオプションがあります
国のデータ列を個別に追加し
each
、コンテンツを表示します。たとえばthree columns
、米国、英国、オーストラリアの 3 つの国の場合で、ユーザーの場所が米国の場合は、$sql=mysql_fetch_array(mysql_query("SELECT * FROM content_table WHERE US=='$country_code'"))
;単一列の国データをcountry_codeとして追加し、US、UK、AUを保存し、ユーザーの場所がUSの場合、
$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 }
注:国の数は私のニーズによって異なる場合があります
これを克服するためのベストプラクティスは何か、
- 国ごとに異なる列を使用すると検索が高速になりますが、列を追加するのは良くないと思います
- 単一の列を使用してカンマ区切りの値を反復するには、さらに計算が必要です
私は何をすべきか..??これについて私にアドバイスしてください..または、これよりも良いアイデアはありますか..? ありがとう