-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 に答える