更改从sql存储过程返回的数组的格式

时间:2011-07-13 07:30:39

标签: php mysql sql

我甚至不知道我想要的是什么,但是你走了: 我有一个存储过程返回一个数组,其中包含我需要的所有数据但不是我想要的格式:我有

USER

TYPE

USER_TYPE (foreign key user_id from USER, type_id from TYPE)

GAME

USER_GAME (foreign key user_id from USER, game_id from GAME)

我有一个JOINS查询:

SELECT user_name,type_name,game_name

FROM user u

INNER JOIN user_type ut
    ON u.user_id=ut.user_id

INNER JOIN type t
      ON ut.type_id=t.type_id

LEFT JOIN user_game ug
    ON u.user_id=ug.user_id

INNER JOIN game g
    ON ug.game_id=g.game_id

WHERE t.type_name = ?

...

所以我得到一个以下格式的数组:

[0] => Array
    (
        [user_id] => 1
        [type] => type1
        [game] => game1
    )

[1] => Array
    (
        [user_id] => 1
        [type] => type1
        [game] => game2
    )

[2] => Array
    (
        [user_id] => 1
        [type] => type2
        [game] => game2
    )

等...

但我想查询返回一个数组,如

[0] => Array
    (
        [user_id] => 1
        [type] => type1
        [game1] => game1
        [game2] => game2
    )
[1] => Array
    (
        [user_id] => 1
        [type] => type2
        [game1] => game1
        [game2] => game2
    )

等...

因此列出了每个阵列中一个用户的所有游戏:我想我需要基本上保持连接类型,从中获取各种user_id,然后为各种user_id获取游戏,并进行合并这一切。 如果可以在程序本身内完成,那将是很好的。

我希望这不是不可读的,非常感谢任何帮助。 顺便说一句,如果你们中的任何一个人可以指导我进行关于更高级sql查询的好教程,因为我对此有点缺... 非常感谢你!

1 个答案:

答案 0 :(得分:0)

数组是PHP端结构,而不是MySQL。您的存储过程将返回一个结果集,您将不得不遍历PHP数组以从每个游戏玩家获取所有游戏。