私がやろうとしていることの完全な要約を得たくない場合は、スキップしてください(問題はここから始まります)
新しいサイトをセットアップしていて、問題が発生しました。
私が基本的にやろうとしているのは、広告を特定の国に割り当てることです。たとえば、英国出身の場合、英国の在庫にある広告が表示されます。
そこで、IP に基づいてユーザーの国を検出する方法について、Google からいくつかのデータを収集しました。これを完全に行う関数を作成しました。
$ip_address= $_SERVER['REMOTE_ADDR'];
function ip_location($ip){
$parts = explode('.', $ip);
$numeric_ip = $parts[3] + (256 * $parts[2]) + (256 * 256 * $parts[1]) + (256 * 256 * 256 * $parts[0]);
$sql = "SELECT country FROM iptocountry WHERE lower_bound <= $numeric_ip AND upper_bound >= $numeric_ip LIMIT 1";
$result = mysql_query($sql);
$country = mysql_result($result, 0);
return $country;
}
$country = ip_location($ip_address);
echo $country; // Always echos the correct country
(問題はここから始まります)
したがって、この機能は正常に動作します。この関数を作成した後、その関数からのデータを使用してユーザーに表示する広告を選択する MYSQL クエリを作成しました。
ここから問題が始まります。
このクエリを入力すると:
$sql = "SELECT * FROM `nuevo__htmlad` WHERE `country` = 'united kingdom' AND `active` = 1 ORDER BY RAND() LIMIT 1";
それを使用country = 'united kingdom'
すると正常に動作しますが、置くとcountry = '$country'
広告を表示することはありません。
PHP変数を内部に配置すると、このクエリが機能しない理由を誰かが理解するのを手伝ってくれますか? こんなに単純なことでこんなに悩んだのは初めてです。
どんな助けでも大歓迎です。