Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ■DB情報
- title,latitude,longitude
- タイトルA,111111,222222
- タイトルB,333333,444444
- タイトルC,555555,666666
- タイトルD,777777,888888
- ※取得したGPSデータは「333334」「444445」としまして、近似値である
- 「333333」「444444」の「タイトルB」のみが結果で帰ってくるのが理想です。
- <?php
- //DatabaseClassを読み込み
- include_once "DatabaseClass.php";
- //テーブル名が選択されているかどうか確認
- if($_POST["table_name"] )
- {
- //DB名設定
- $db_name = "test";
- $database = new Database($db_name);
- $table_name = $_POST["table_name"];
- // 取得したデータが緯度「latitude」が333334、経度「longitude」444445と設定しています。
- // 比較後は、近似値の「title」のみを返す
- $sql = ("SELECT *, sqrt(power(abs(333334 - latitude),2) + power(abs(444445 - longitude),2))
- FROM {$table_name}
- order by title
- LIMIT 1
- ");
- //クエリ送信
- $query = pg_query($sql);
- $json= array();
- //テーブル名に「m_test」という文字列が入っているテーブルのデータをJSON形式で書き出し
- if(strstr($table_name, 'm_test')){
- while ($row = $database->jsonparse($query)) {
- $json[] = array(
- 'title' => $row->title
- ,
- );
- }
- }
- //JSON形式で出力
- header("Content-Type: application/json; charset=utf-8");
- echo json_encode($json);
- //DBを閉じる
- $database->close();
- }
- ?>
- //内部文字コードを変更
- mb_language("uni");
- mb_internal_encoding("utf-8");
- mb_http_input("auto");
- mb_http_output("utf-8");
- class Database{
- var $dbServer;
- var $dbName;
- var $dbUser;
- var $dbPass;
- var $link;
- var $db;
- var $query;
- //DB接続
- function __construct($db_name)
- {
- //DBの情報
- $this->dbServer="localhost";
- $this->dbName=$db_name;
- $this->dbUser="XXXXXX";
- $this->dbPass="XXXXXX";
- //ポスグレに接続
- $this->link=pg_connect("host={$this->dbServer} dbname={$this->dbName} user={$this->dbUser} password={$this->dbPass}")
- or
- die(exit);
- //UTF-8の文字コードに変更
- $this->query=pg_query($this->link,'SET NAMES utf8');
- }
- //DBを閉じる
- public function close()
- {
- return pg_close($this->link);
- }
- //読み込むテーブルの選択
- public function select($query)
- {
- $result=pg_query($query);
- $row=array();
- $row=pg_fetch_assoc($result);
- return $row;
- }
- //指定したクエリの実行
- public function query($query)
- {
- return pg_query($this->link,$query);
- }
- //JSON形式に変換用の出力
- public function jsonparse($query)
- {
- $row = pg_fetch_object($query);
- return $row;
- }
- }
- ?>
- PHP Warning: pg_query(): Query failed: ERROR: syntax error at or near "utf8"
- LINE 1: SET NAMES utf8
- in /Applications/MAMP/htdocs/DatabaseClass.php on line 36
Add Comment
Please, Sign In to add comment