0

I'm trying to make a JSON array from the jquery ui map that has this structure

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

Right now, I have no idea about how to do it.

Basically, I'm trying to get locations from a database, but my attempt is making the structure wrong.

The structure I'm getting is

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

My PHP is

$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);
}
?>

Please help

Thank you,

Hunter

2
  • If you have echo json_encode in a loop you're probably doing something wrong. Commented May 26, 2013 at 19:25
  • Thank you. I derped. Badly. Commented May 26, 2013 at 19:27

1 Answer 1

3

The following code will save it first into a temporary array, only then json_encode it.

Your problem was that you tried to json_encode it every time you fetched some data.

$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);
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you very much. It worked! Will set as correct when I am allowed to.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.