2013-03-27 69 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.'; 
     } 
    } 
}