1

JSON_encode を使用して、トラックの js ファイルにデータを送信しています。ユーザーは 1 つまたは複数のトラックを持つことができるため、そこに問題があります。複数の配列を許可するために配列を整理する方法がわかりません。すべてのJSONデータを分離する必要があるため、配列内で配列を使用することはできません。

track1 {ID:110232....}
track2 {ID:21402....}

トラックが1つしかない場合、私が今持っているものはうまく機能します。

$ID = $_GET['ID'];
$result = mysql_query("SELECT * FROM tracks WHERE ID = '$ID' ORDER BY timestamp DESC");
while($row = mysql_fetch_array($result)){
    $T_ID = $row['T_ID'];
    $T_url = $row['url'];
    $T_name = $row['name'];
    $T_timestamp = $row['timestamp'];
    $arr = array('T_ID' => $ID,'T_name' => $T_name, 'T_url' => $T_url, 'T_timestamp' => $T_timestamp );

    echo json_encode($arr);
}
4

1 に答える 1

4

次のようなコンテナ配列内で(連想)配列を使用できないのはなぜですか。

$cont = array();
while($row = mysql_fetch_array($result)){
  $T_ID = $row['T_ID'];
  $T_url = $row['url'];
  $T_name = $row['name'];
  $T_timestamp = $row['timestamp'];
  $arr = array('T_ID' => $ID,'T_name' => $T_name, 'T_url' => $T_url, 'T_timestamp' => $T_timestamp );

  $cont[] = $arr;
}

echo json_encode($cont);

これにより、次のようなJSON構造が作成され、すべてのトラックが別々のオブジェクトに保持されます。

[ 
  {'T_ID': 1, 'T_name': 1, ... },
  {'T_ID': 2, 'T_name': 2, ... },
  {'T_ID': 3, 'T_name': 3, ... },
  ...
]

コメントに記載されているように、PDOまたはmysqli-関数に切り替える必要がありますが、これは当面の問題には関係ありません。

于 2012-10-29T13:07:45.220 に答える