2014-12-02 116 views
0

想知道是否有人能夠幫助我構建一個多維數組輸出,在此之前已經停留了很長一段時間。我使用PHP和MySQL數據庫我有3個表'獎盃''獲獎者'和'LinkTable'(全部結構在下面)我需要顯示所有獎盃數據(名稱描述圖片)和下表顯示所有以前的獲獎者獎盃;多維數組輸出php mysql

這是所期望的輸出...

Trophy1Name     [Trophy1Image] 
Trophy1Description 
Year FirstName SecondName 

我需要這環路在DB(9個)的所有其他獎品因此爲什麼我需要的陣列,其具有被問題IM,我可以顯示所有這些獎盃和他們的形象和描述在一個循環中,但我無法解決如何將所有以前的獲勝者添加到桌子上。

最接近的iv來是爲了循環每個贏家,但是當我擁有超過300個不同的獲勝者時,這也反覆地重複了獎盃細節並不完全理想。

這是我的MySQL表結構和加盟:

Trophies  Winners  LinkTable 
-------- --------- --------- 
TrophyID  WinnerID LT_WinnerID 
TrophyName FirstName LT_TrophyID 
Description SecondName 
Image   Year 

加入:

$trophylist = mysql_query(" 
SELECT TrophyID, TrophyName, Description, Image, WinnerID, FirstName, SecondName, Year 
FROM LinkTable 
INNER JOIN Winners ON (LinkTable.LT_WinnerID = Winners.WinnerID) 
INNER JOIN Trophies ON (LinkTable.LT_TrophyID = Trophies.TrophyID)"); 

回答

0

這聽起來不像一個查詢問題。聽起來更像是一個顯示問題。數據庫將自然而然地返回獎盃的所有獲勝者,這要求結果集在每條記錄中重複該獎盃的名稱。您需要編寫PHP代碼來正確解釋這一點。

例如在僞代碼ISH:

$prev_trophy = null; 
while($row = fetch_from_db($query_result)) { 
    if ($row['TrophyID'] != $prev_trophy) { 
     ... got a new trophy, so output trophy header stuff here 
     $prev_trophy = $row['TrophyID']; 
    } 
    ... output winner information 
} 

只要你有你的查詢相應order by條款,上面的代碼風格將輸出一個獎盃的細節一次作爲標題。對於相同獎盃的後續記錄,只會輸出贏家信息

+0

完美工作!謝謝! – user3527102 2014-12-03 00:40:04