0

この構造を持つjquery uiマップからJSON配列を作成しようとしています

{"markers":[{"latitude":57.7973333, "longitude":12.0502107}, {"latitude":57.6969943, "longitude":11.9865}]}

今のところ、私はそれを行う方法について考えていません。

基本的に、データベースから場所を取得しようとしていますが、構造が間違っています。

私が得ている構造は

{"markers":{"latitude":"42.33819791906357","longitude":"-71.04998970619276"}}{"markers":{"latitude":"42.33843636702964","longitude":"-71.0503180325693"}}{"markers":{"latitude":"42.33898102309772","longitude":"-71.0509396345085"}}

私のPHPは

$result = mysql_query("SELECT lat, lon, it, name FROM login");

while($row = mysql_fetch_array($result))
{
    $lat = $row['lat'];
    $lon = $row['lon'];
    $name = $row['name'];
    $it = $row['it'];

    $data["markers"]["latitude"] = $lat;
    $data["markers"]["longitude"] = $lon;
    $data["markers"]["name"] = $name;
    $data["markers"]["it"] = $it;

    echo json_encode($data);
}
?>

助けてください

ありがとうございました、

猟師

4

1 に答える 1

3

次のコードは、最初に一時配列に保存してから、json_encode します。

あなたの問題は、データを取得するたびに json_encode しようとしたことです。

$data["markers"] = array();
while ($row = mysql_fetch_array($result))
{
    $lat = $row['lat'];
    $lon = $row['lon'];
    $name = $row['name'];
    $it = $row['it'];

    $data["markers"][] = array(
        "latitude" => $lat,
        "longitude"] = $lon,
        "name" => $name,
        "it" => $it
    );  
}

echo json_encode($data);
于 2013-05-26T19:23:28.283 に答える