Php 来自MySQL查询的Jquery多维JSON

Php 来自MySQL查询的Jquery多维JSON,php,jquery,mysql,json,Php,Jquery,Mysql,Json,我需要从MySQL查询开始发送一个JSON多维数组 SQL查询是一个左连接,如下所示: SELECT `TEAM`.`ID` AS TEAM_ID, `TEAM`.`NAME` AS TEAM_NAME, `TEAM_PLAYER`.`ID` AS TEAM_PLAYER_ID, `TEAM_PLAYER`.`NAME` AS TEAM_PLAYER_NAME FROM `TEAM_PLAYER` LEFT JOIN `TEAM` ON `TEAM_PLAYER`.`TEAM_ID` = `TE

我需要从MySQL查询开始发送一个JSON多维数组

SQL查询是一个左连接,如下所示:

SELECT `TEAM`.`ID` AS TEAM_ID, `TEAM`.`NAME` AS TEAM_NAME, `TEAM_PLAYER`.`ID` AS TEAM_PLAYER_ID, `TEAM_PLAYER`.`NAME` AS TEAM_PLAYER_NAME FROM `TEAM_PLAYER`
LEFT JOIN `TEAM` ON `TEAM_PLAYER`.`TEAM_ID` = `TEAM`.`ID`
但是,此查询返回一个包含重复列的平面数组,例如

1只红袜子34只无名氏

1只红袜子39迈克尔·凯奇

2.阿丽亚·萨姆

通过互联网发送既多余又麻烦

我希望得到一个JSON,例如:

"0": {TEAM_ID : 1, TEAM_NAME : "RED SOCKS", "0": {TEAM_PLAYER_ID: 34, TEAM_PLAYER_NAME: JOHN DOE}, "1": {TEAM_PLAYER_ID: 39, TEAM_PLAYER_NAME: MICHAEL CAGE} },
"1": {TEAM_ID : 2, TEAM_NAME : "VELVET", "0": {TEAM_PLAYER_ID: 94, TEAM_PLAYER_NAME: ARIA SAM}
通过调用json_encode()返回


有什么合适的方法吗?

我会用PHP这样做

基本知识:使用
stdClass
对象创建快速、易于转换的对象。使用
{}
符号检查变量
id

计数(获取对象变量($master->{$id}))
:这是最不寻常的部分。它统计当前选定属性(
id
)中的属性数量。两个属性是固定的:
TEAM\u ID
TEAM\u NAME
,因此我们可以从总数中减去这些属性,其他属性是团队成员。返回的整数将为我们提供新队员的当前
id

注释说明了这一点,但是代码非常简单:

$array=array(array(1,“红袜子”,34,“约翰·多伊”)、array(1,“红袜子”,39,“迈克尔·凯奇”)、array(2,“天鹅绒”,94,“阿里亚·萨姆”)//演示
$master=新的stdClass();
对于($i=0;$i{$id}))
{
//设置id;
$master->{$id}=newstdclass();
$master->{$id}->TEAM_id=$id+1;
$master->{$id}->TEAM_NAME=$array[$i][1];
}
$currentKey=(count(get_object_vars($master->{$id}))-2;//总密钥量减去两个固定密钥。
$master->{$id}->{$currentKey}=newstdclass();
$master->{$id}->{$currentKey}->TEAM_PLAYER_id=$array[$i][2];
$master->{$id}->{$currentKey}->TEAM_PLAYER_NAME=$array[$i][3];
}   
echo json_编码($master);
我的服务器上的结果:

{
 "0":{"TEAM_ID":1,"TEAM_NAME":"RED SOCKS",
      "0":{"TEAM_PLAYER_ID":34,"TEAM_PLAYER_NAME":"JOHN DOE"},
      "1":{"TEAM_PLAYER_ID":39,"TEAM_PLAYER_NAME":"MICHAEL CAGE"}
     },
 "1":{"TEAM_ID":2,"TEAM_NAME":"VELVET",
      "0":{"TEAM_PLAYER_ID":94,"TEAM_PLAYER_NAME":"ARIA SAM"}
     }
}

没有代码就不行。您需要在PHP中循环结果并返回带有json_encode的std对象。我为此设计了一个PHP解决方案,但最优化的方法是使用存储过程。谢谢,但这是一个非常长的解决方案,请注意,您从数组开始,正如您所指出的,我还应该实现从SQL结果到数组数组的转换。我认为应该有一些更快的东西,但我遗漏了。更快的方法是在sql查询中这样做。