2013-03-27 79 views
0

嗨,我想找到我们的用户是从他们的IP地址,以便能够显示我的数据库中靠近他们/他们的地区的用户列表我们的城市。获取用户地理位置和基于位置回显mysql结果?

我一直在寻找这个API:

http://ipinfodb.com/ip_location_api.php

,我已经注册并获得API密钥,但林不知道在哪里可以从这里走。这是他们用来获取用户位置的示例代码:

<?php 
include('ip2locationlite.class.php'); 

//Load the class 
$ipLite = new ip2location_lite; 
$ipLite->setKey('<api key>'); 

//Get errors and locations 
$locations = $ipLite->getCity($_SERVER['REMOTE_ADDR']); 
$errors = $ipLite->getError(); 

//Getting the result 
echo "<p>\n"; 
echo "<strong>First result</strong><br />\n"; 
if (!empty($locations) && is_array($locations)) { 
    foreach ($locations as $field => $val) { 
    echo $field . ' : ' . $val . "<br />\n"; 
    } 
} 
echo "</p>\n"; 

//Show errors 
echo "<p>\n"; 
echo "<strong>Dump of all errors</strong><br />\n"; 
if (!empty($errors) && is_array($errors)) { 
    foreach ($errors as $error) { 
    echo var_dump($error) . "<br /><br />\n"; 
    } 
} else { 
    echo "No errors" . "<br />\n"; 
} 
echo "</p>\n"; 

?> 

,但如何将我现在设置一个MySQL查询,说如果用户的位置是伦敦和用户都被列在数据库中的伦敦再到将这些显示给用户?

如果有人可以帮忙,我真的很感激在这里向正确的方向推动,谢谢。

+0

你说“用户在数据库中列为伦敦则显示这些用户?”这些是什么'?你的数据库结构是什么样的?你对用户有什么信息或数据结构? – 2013-03-27 04:25:13

+0

基本上在我的MySQL表中我有user_location其中存储用户的城市,我现在使用地理位置API来获取用户的城市位置的IP地址,我想任何结果是,即伦敦或曼彻斯特然后MySQL查询将使用user_location = london/manchester获取所有用户。 – 2013-03-27 04:30:50

回答

0

这里是一个例子(不知道你的数据库结构和未经测试;)。在foreach插入本($位置为$场=> $ val)的循环如下:

foreach ($locations as $field => $val) { 
    echo $field . ' : ' . $val . "<br />\n"; 

    $mysqli = new mysqli('<mysql server>', '<mysql user>', '<mysql password>', '<database>'); 
    if(mysqli_connect_errno()) { 
     echo 'Error: Unable to connect to Database; '; 
    } else { 
     if ($stmt_evt = $mysqli -> prepare('SELECT <other_users>, ... FROM <your table> WHERE <user_location> LIKE ? ORDER BY <whatever>')) { 
      $stmt_evt -> bind_param('s', $val); 
      $stmt_evt -> execute(); 
      $stmt_evt -> bind_result($<other_users>, $...); 
      while ($stmt_evt->fetch()) { 
       echo 'Other users in your area: '.$<other_users>; 
      } 
     } else { 
      echo 'Error: Unable to prepare Event statement.'; 
     } 
    } 
}