我有MySQL 5.1,我正在尋找基於IP填充最近城市的選擇框。我已經下載了Max Mind的GeoLite數據庫,但我無法弄清楚如何填充接近IP的城市。我還想「預先選擇」最近的基於IP的城市。使用地理定位搜索最近的城市
我寫了一些代碼,但我只能顯示我找到的國家的所有城市。那麼,有人可以告訴我如何做到這一點?
<?php
$ip=$_SERVER["REMOTE_ADDR"];
$user="user";
$pass="password";
$conn=mysql_connect("localhost:3306",$user,$pass);
$link=mysql_select_db("db");
$ipConv=ip2long($ip);
$sql="SELECT CITY,REGION,LATITUDE,LONGITUDE
FROM location, blocks
WHERE $ipConv
BETWEEN blocks.startIpNum
AND blocks.endIpNum
AND location.locId = blocks.locid";
$result=mysql_query($sql) or die (mysql_error());
while($row = mysql_fetch_assoc($result))
{
$tcity=$row['CITY'];
$tregion=$row['REGION'];
}
$sql2="SELECT COUNTRY FROM location WHERE CITY='$tcity'";
$result2=mysql_query($sql2);
while($row2 = mysql_fetch_assoc($result2))
{
$country=$row2['COUNTRY'];
}
$sql3="SELECT CITY,REGION FROM location WHERE COUNTRY='$country' GROUP BY REGION";
$result3=mysql_query($sql3);
?>
<form>
<select>
<?php
while ($row3=mysql_fetch_assoc($result3))
{
?>
<option <?php if ($row3['CITY']==$tcity){ ?> selected="selected"<?php } ?>)>
<?php echo $row3['CITY']; ?>
</option><?php
} ?>
</select>
</form>
感謝