2011-07-13 51 views
1

我甚至不知道我想要什麼,但在這裏你去: 我有一個存儲過程返回一個數組,我需要的所有數據但不在格式,我想:我有更改從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)

而且我有一個查詢與聯接:

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查詢的好教程因爲我有點短... 非常感謝!

+0

您正在使用哪些DBMS?你真的從存儲過程中返回一個**數組**嗎?爲什麼不返回一個常規結果集? –

+0

你確定用戶每次只有兩種遊戲嗎? – ksogor

+0

嗨,大家好,我使用mysql和遊戲的數量實際上可能會有所不同,並且這將更容易將輸出保留爲數組。 – bstenm

回答

0

數組是一個PHP側結構,而不是MySQL。你的存儲過程將返回一個結果集,你將不得不通過PHP數組循環訪問每個玩家的所有遊戲。