2012-11-29 73 views
0

該應用將gps位置發送到用戶設置的php服務器。我有一個PHP MySQL模型服務器。我不知道如何接收從應用程序發送到服務器數據庫的JSON。任何幫助,將不勝感激。提前致謝。造成這種情況的代碼爲https://github.com/jcs/triptracker/blob/master/src/org/jcs/triptracker/TrackerService.java如何從Triptracker android應用程序接收PHP中的JSON數據?

張貼參數是位置陣列,每個元件是散列包括時間(Unix時間戳從位置服務),緯度和經度(任意精度兩個float值),和速度以米每秒。

在此先感謝。

+0

你能告訴我們數據是什麼樣子嗎? –

+0

在這裏閱讀我:https://github.com/jcs/triptracker –

回答

0

您可以使用json_decode()從您收到的json中創建一個對象。

一個例子是:

$data = json_decode($_POST['yourdata']); 

假設JSON看起來是這樣的:

{"foo":"bar"} 

現在你可以這樣做:

echo $data->foo; 

使用此數據在你的mysql查詢。

0

你可以在你的PHP中的變量是這樣的:

$lat = $_REQUEST['lat']; 
$lng = $_REQUEST['lng']; 

然後你就可以將你的數據庫$ lat和$ LNG。

例子:

function launchQuery($call) 
{ 
    $link = mysqli_init(); 
    if (!$link) { 
     die('mysqli_init failed'); 
    } 

    if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 1')) { 
     die('Setting MYSQLI_INIT_COMMAND failed'); 
    } 

    if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) { 
     die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'); 
    } 

    if (!mysqli_real_connect($link, $dbhost, $dbuser, $dbpassword, $dbname, $dbport)) { 
     die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); 
    }  

    mysqli_query($link,"SET NAMES 'utf8'"); 
    $rs = mysqli_query($link, $call); 

    mysqli_close($link); 

    return $rs; 
} 

launchQuery("insert into whatever_your_table_name_is (latitude, longitude) values (".$lat.",".$lng.");"); 
+0

請你可以顯示這個 –

+0

的示例代碼編輯舉個例子 –

0

我花了一段解碼格式,但下面的代碼片段被提取從應用程序中的數據。請注意,行程跟蹤器可能會提交一個迄今爲止無法傳輸的先前位置點陣列。

<?php 
$locations = $_REQUEST['locations']; // Get all POST arrays 

i = 0;         // Choose first locations array 

// Now you can access single fields with: 
time  = $locations[i]['time']; 
latitude = $locations[i]['latitude']; 
longitude = $locations[i]['longitude']; 
speed  = $locations[i]['speed']; 

?> 

注意,「時間」是毫秒紀元以來,爲UNIX時間戳,我們需要通過1000分成的浮動,允許轉換。同樣,可以有超過1個位置的數組可用,通過在循環中計數我來訪問其他數組。

相關問題