【问题标题】:get users geo location and echo out mysql results based on location?获取用户地理位置并根据位置回显 mysql 结果?
【发布时间】:2013-03-17 02:51:25
【问题描述】:

您好,我正在尝试从他们的 IP 地址中找到我的用户所在的城市,以便能够在我的数据库中显示靠近他们/在他们所在地区的用户列表。

我一直在看这个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 查询,说明用户位置是否在伦敦,并且用户在数据库中列为伦敦,然后将这些显示给用户?

如果有人可以提供帮助,我将非常感谢您朝着正确的方向前进,谢谢。

【问题讨论】:

  • 您说“用户在数据库中被列为伦敦,然后将这些显示给用户?”这些是什么'?你的数据库结构是什么样的?您已经掌握了用户的哪些信息或数据结构?
  • 基本上在我的 mysql 表中我有 user_location 存储用户的城市,我现在使用地理位置 api 通过 ip 地址获取用户的城市位置,我想要任何结果,即伦敦或 manchester,然后 mysql 查询将获取 user_location = london/manchester 的所有用户。

标签: php mysql


【解决方案1】:

这是一个示例(不知道您的数据库结构且未经测试;)。将其插入到 foreach ($locations as $field => $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.';
        }
    }
}

【讨论】:

    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多