Wenn Sie keine vollständige Zusammenfassung dessen, was ich zu tun versuche, erhalten möchten, springen Sie zu (Problem beginnt hier)
Ich bin dabei, meine neue Website einzurichten und bin auf ein Problem gestoßen.
Im Grunde versuche ich, Anzeigen bestimmten Ländern zuzuordnen. Wenn Sie beispielsweise aus dem Vereinigten Königreich kommen, werden Ihnen Anzeigen angezeigt, die wir in unserem britischen Bestand haben.
Also habe ich einige Daten von Google gesammelt, wie man das Land eines Nutzers anhand seiner IP-Adresse erkennen kann. Ich habe eine Funktion erstellt, die das perfekt macht.
$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
(Das Problem beginnt hier)
Diese Funktion funktioniert also gut. Nachdem ich diese Funktion erstellt habe, habe ich eine MYSQL-Abfrage erstellt, die die Daten aus dieser Funktion verwendet, um eine Anzeige auszuwählen, die einem Benutzer angezeigt wird.
Genau hier beginnt das Problem.
Wenn ich diese Abfrage tippe:
$sql = "SELECT * FROM `nuevo__htmlad` WHERE `country` = 'united kingdom' AND `active` = 1 ORDER BY RAND() LIMIT 1";
mit country = 'united kingdom'
funktioniert es gut, aber wenn ich die country = '$country'
Nichts funktioniert, es wird nie eine Anzeige angezeigt.
Kann mir jemand helfen zu verstehen, warum diese Abfrage nicht funktioniert, wenn ich die PHP-Variable darin platziere. Dies ist tatsächlich das erste Mal, dass mich etwas so Einfaches so sehr beunruhigt hat.
Für jede Hilfe wären wir dankbar.