0

こんにちは私は以下のコードを使用してxmlファイルから情報を取得するコードを持っています:

if (file_exists('locations.xml')) {
    $xml = simplexml_load_file('locations.xml');
    $json = json_encode($xml);
    print_r($json);
} else {
    exit('Failed to open locations.xml.');
}

以下はxmlページのレイアウトです

   <locations>
     <location>
       <id>12196</title>
       <uid>010203</uid>
       <lat>34.134103</lat>
       <lng>-118.321694</lng>
      </location>
    <location>

これは正常に機能します。今、私がやりたいのは、データベースから直接情報を取得するために上記のコードを置き換えることです。そして、次のコードを持っています:

  $query = mysql_query("SELECT * FROM track ORDER BY id");
  $rows = array();
  while($row = mysql_fetch_assoc($query)) {
   $rows[] = $row;
  }
  print json_encode($rows);

データベースから情報を取得するとき、それはうまく機能します。ただし、データを取得するときの形式は、たとえばわずかに異なることに気づきました。

最初の方法を使用すると、次のように結果の前に場所が配置されます。

  {"location":[{"id":"12196"

2番目のメソッドはこれを返します。

  [{"id":"12196","uid":"010203"

2番目の形式に場所を含めるためにいくつかの方法を試しましたが、機能しないようです。コードの残りの部分では、ロケーションタグを使用して情報を割り当てていると思います。

任意の提案をいただければ幸いです。

ありがとう

4

1 に答える 1

3

試す

while($row = mysql_fetch_assoc($query)) {
   $rows['location'][] = $row;
  }
  print json_encode($rows);
于 2012-12-01T15:39:03.513 に答える