2014-12-02 87 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