-2

我尝试从 TripTracker Android 应用程序通过我的 php 服务器将位置数据添加到 mysql 数据库。这在 php 中,但它仍然无法正常工作。请帮帮我。使用 for 循环,它会在数据库中创建一个空行。当我删除它时,它根本不起作用。

<?php
    $json = $_GET['locations'];//get the post you sent...
    //$data = $_GET['locations'];
    $data = json_decode($json); //decode the json formatted string...
    $data = array();
    print_r($data);
    echo ($data);
    //foreach ($data as $x=>$loc){
    $loctime = $data->time;
    $latitude = $data->latitude;
    $longitude = $data->longitude;

    $con = mysql_connect("localhost","root","");
    if (!$con)
        die('Could not connect: ' . mysql_error());

    mysql_select_db("gpscoordinates", $con);
    $loctime = $_POST['time'];
    $latitude = $_POST['latitude'];
    $longitude = $_POST['longitude'];

    $sql = "INSERT INTO  `gpscoordinates`.`locations`
            (`id`, `loctime`, `latitude`, `longitude`)
            VALUES (NULL, '$loctime', '$latitude', '$longitude')";
    if (!mysql_query($sql,$con))
      die('Error: ' . mysql_error());

    mysql_close($con);
    //}
    //echo json_encode($variable);
?>

下面是一个可用的 Rails 等价物。

params[:locations].each do |x,loc|
    l = Tripcoord.new
    l.created_at = Time.at(loc[:time].to_i)
    l.latitude = loc[:latitude]
    l.longitude = loc[:longitude]
    l.save!
  end
4

1 回答 1

0

您从 $_POST 数组中设置值:

$loctime = $_POST['time'];
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];

但是您的数据来自 $_GET 数组?

 $json = $_GET['locations'];

我错过了什么吗,因为这显然行不通。

改变

$_GET['locations'] to $_POST['locations']

(或反之亦然,视情况而定)。更何况,

$data = array();

如果 $_POST 中有任何内容,将清空这些值。

我希望我没有完全误解......

于 2012-11-30T04:06:50.337 回答