Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

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

share|improve this question
    
If you have echo json_encode in a loop you're probably doing something wrong. –  Musa May 26 '13 at 19:25
    
Thank you. I derped. Badly. –  copilot0910 May 26 '13 at 19:27

1 Answer 1

up vote 3 down vote accepted

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);
share|improve this answer
    
Thank you very much. It worked! Will set as correct when I am allowed to. –  copilot0910 May 26 '13 at 19:25

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.