0

こんにちは、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クエリを設定して、これらをユーザーに表示するにはどうすればよいですか?

誰かが助けてくれれば、ここで正しい方向にプッシュしていただければ幸いです。

4

1 に答える 1

0

これが例です(データベース構造を知らず、テストされていません;)。以下のように、これを 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.';
        }
    }
}
于 2013-03-27T06:36:17.317 に答える