2013-05-26 6 views
0

Je suis en train de faire un tableau JSON de la carte jquery ui qui a cette structurePHP faire tableau JSON multidimensionnel

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

En ce moment, je ne sais pas sur la façon de le faire. Fondamentalement, j'essaye d'obtenir des emplacements d'une base de données, mais ma tentative fait la structure fausse.

La structure que je reçois est

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

Mon PHP est

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

S'il vous plaît aider

Merci,

Hunter

+0

Si vous avez 'echo json_encode' dans une boucle, vous faites probablement quelque chose de mal. – Musa

+0

Merci. J'ai déformé. Mal. – copilot0910

Répondre

3

Le code suivant l'enregistrera d'abord dans un tableau temporaire, puis json_encode it.

Votre problème était que vous essayiez de le json_encode chaque fois que vous récupériez des données.

$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); 
+0

Merci beaucoup. Ça a marché! Définira comme correct quand je suis autorisé à. – copilot0910