Javascript 将Sql请求转换为json,但使用特定格式

Javascript 将Sql请求转换为json,但使用特定格式,javascript,php,sql,angularjs,json,Javascript,Php,Sql,Angularjs,Json,我的问题是:我可以有一个Json格式,但不是我想要的格式。我向您展示我的代码,然后向您展示我想要的Json模型。我不知道如何继续,如果我必须更改php代码、js代码或数据库,我认为fetchAll()数组不适合我。我真的需要帮助。。。代码正在运行,只是格式不好。我只对sql请求和数据库使用AngularJs、Html、Css和php。我告诉你我在使用什么,因为它可能存在Js或php中的解决方案,甚至是我的sql请求,这可能是不合适的 我的php代码: $request = $bdd->pr

我的问题是:我可以有一个Json格式,但不是我想要的格式。我向您展示我的代码,然后向您展示我想要的Json模型。我不知道如何继续,如果我必须更改php代码、js代码或数据库,我认为fetchAll()数组不适合我。我真的需要帮助。。。代码正在运行,只是格式不好。我只对sql请求和数据库使用AngularJs、Html、Css和php。我告诉你我在使用什么,因为它可能存在Js或php中的解决方案,甚至是我的sql请求,这可能是不合适的

我的php代码:

$request = $bdd->prepare('
    SELECT z.name zoneName, c.name columnName, w.name woodName 
    FROM zones z
    JOIN columns c ON (c.ID_zone = z.ID)
    JOIN woods w ON (w.ID_column = c.ID)
    ');

$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
我在Json中的结果:

        [{"zoneName":"A1","columnName":"C1","woodName":"10-27-050-03\/17"},
        {"zoneName":"A1","columnName":"C1","woodName":"42-27-050-03\/17"},
        {"zoneName":"A1","columnName":"C2","woodName":"20-23-050-03\/17"},
        {"zoneName":"A2","columnName":"C3","woodName":"90-37-050-03\/17"}]
我想要的结果是:

{"zoneName":[{"columnName": [[{"id":"woodName"},{"id":"woodName"},...]]},{"columnName": [[{"id":"woodName"},{"id":"woodName"}, ...]]},...],"zoneName":[{"columnName": [[{"id":"woodName"},{"id":"woodName"}, ...]]},{"columnName": [[{"id":"woodName"},{"id":"woodName"}, ...]]},...],...}

我终于成功了,但不是以我想要的方式。。。然后我不想解决这个问题,因为我直接从我的请求中创建了自己的Json。我仍然想要一个解决方案的方式是使用sql请求,该请求将通过php函数fetchAll()+Json_encode()直接返回我想要的Json

我所做的代码(有效):

我知道我的代码不干净,但我没有足够的编程经验

$outp的结果:

{"A1":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"10-27-050-03_17"},{"type":"item","id":"10-28-050-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"20-23-050-03_17"},{"type":"item","id":"20-23-050-03_18"}]]}],"A2":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"30-27-052-03_17"},{"type":"item","id":"30-27-052-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"40-27-050-03_17"},{"type":"item","id":"40-28-050-03_17"}]]},{"type":"container","id":"C3","columns":[[{"type":"item","id":"50-27-050-03_17"},{"type":"item","id":"50-28-050-03_17"}]]}],"A3":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"60-27-050-03_17"},{"type":"item","id":"60-27-050-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"70-27-050-03_17"},{"type":"item","id":"70-27-050-03_17"}]]}],"A4":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"80-27-050-03_17"},{"type":"item","id":"80-28-050-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"90-27-040-03_17"},{"type":"item","id":"90-27-050-03_17"}]]}]}
即使我得到了我想要的输出,我仍然在寻找解决方案,因为现在操作我的数据库将非常困难


祝你有愉快的一天

[“id”:“woodName”,“id”:“woodName”,…]
不可能。数组/对象不包含重复的键,您永远不会以这种方式获得json响应。你不喜欢你得到的结果是什么?当然我犯了一个错误,谢谢B.Desai,我编辑了它。我不喜欢我得到的结果,因为我正在创建一个应用程序,其中有一块zoneName,它包含了它的所有columnName,它包含了它的所有woodName,所以有了这个json,我不能按照我的意愿嵌套它,直到等待解决方案,有人吗?
{"A1":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"10-27-050-03_17"},{"type":"item","id":"10-28-050-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"20-23-050-03_17"},{"type":"item","id":"20-23-050-03_18"}]]}],"A2":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"30-27-052-03_17"},{"type":"item","id":"30-27-052-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"40-27-050-03_17"},{"type":"item","id":"40-28-050-03_17"}]]},{"type":"container","id":"C3","columns":[[{"type":"item","id":"50-27-050-03_17"},{"type":"item","id":"50-28-050-03_17"}]]}],"A3":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"60-27-050-03_17"},{"type":"item","id":"60-27-050-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"70-27-050-03_17"},{"type":"item","id":"70-27-050-03_17"}]]}],"A4":[{"type":"container","id":"C1","columns":[[{"type":"item","id":"80-27-050-03_17"},{"type":"item","id":"80-28-050-03_17"}]]},{"type":"container","id":"C2","columns":[[{"type":"item","id":"90-27-040-03_17"},{"type":"item","id":"90-27-050-03_17"}]]}]}