如果你不想得到什麼,我試圖做跳到(問題從這裏開始)配售PHP變量到MySQL查詢
我設置了我的新網站,並碰上了一個完整的總結一個問題。
我基本上試圖做的是將廣告分配到特定的國家。舉例來說,如果您來自英國,您會看到我們在英國庫存中的廣告。
因此,我從Google收集了一些關於如何基於IP檢測用戶所在國家的數據。 我已經做了一個完美的功能。
$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變量。這實際上是第一次這麼簡單,讓我感到非常困擾。
任何幫助,將不勝感激。
首先打印您的查詢'echo $ sql;'並向我們顯示結果。 – Tchoupi 2012-07-27 16:28:59
@MathieuImbert說了什麼,但要澄清,告訴我們'echo $ sql'在硬編碼國家和變量使用中都顯示了什麼。 – Ally 2012-07-27 16:31:59
您可以簡單地執行INSERT .... VALUES(INET_ATON('$ ip'))'並保存自己的PHP端數學。這在某些時候會炸燬32位php安裝。 – 2012-07-27 16:32:56