0

一个节日有很多阶段。多个艺术家在一个阶段演奏。

这是我的 Mysql 结果:

mysql结果

使用该 sql 请求,我想在 PHP 中创建一个具有以下结构的 json 对象:

{
    "name": "mainstage",
    "artists": [
        {
            "name": "Gregori Klosman"
        },
        {
            "name": "Tristan Garner"
        }, 
        {
            "name": "Glow In The Dark"
        }, 
        {
            "name": "Jaxx Da Fishworks"
        }]
}, 
{
    "name": "Dim Mak",
    "artists" : [
        {
            "name": "Albin Myers"
        }
     ]
}

我尝试使用以下脚本执行此操作,但结构略有不同,因为我有一个 ID 来识别阶段。

$stages = array();
while($result_stages = $query_stages -> fetch()) {
    $artist = array("name" => $result_stages["artist_name"]);
    array_push($stages[$result_stages["stage_id"]]["artists"], $artist);
}

echo json_encode($stages);

有任何想法吗 ?我可以使用多个 mysql 请求和 php 循环来实现,但我觉得这不是最合适的方法。感谢您的回答!

4

1 回答 1

0

我试过这样...

$sql="select stage_name from [table_name] group by stage_name";
$result=mysql_query($sql);
$arr = array();
$i=0;
while($row=mysql_fetch_array($result))
{
    $arr[$i]['name']=$row[0];
    $sql2="select artist_name from [table_name] where stage_name='".$row[0]."'";
    $result2=mysql_query($sql2);
    $arr2=array();
    while($row2=mysql_fetch_array($result2))
    {
      array_push($arr2,$row2[0]);
    }
 $arr[$i]['artist'] = $arr2;
 $i++;
}
 echo json_encode($arr); 
于 2013-06-09T17:02:20.800 回答