1

我正在使用 JSON_encode 将数据发送到 js 文件以获取曲目。一个用户可能有一个或多个轨道,这就是问题所在。不知道如何组织我的阵列以允许多个阵列。我不能在数组中使用数组,因为所有 JSON 数据都需要最好分开,所以会有类似的东西;

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

如果只有一首曲目,我现在所拥有的效果很好。

$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, ... },
  ...
]

如评论中所述,您应该切换到PDOmysqli-函数,但这对于手头的问题无关紧要。.

于 2012-10-29T13:07:45.220 回答