首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有mysql链接表的foreach循环

带有mysql链接表的foreach循环
EN

Stack Overflow用户
提问于 2014-11-11 06:45:18
回答 1查看 95关注 0票数 0

我有3个MySQL表,奖杯,获胜者和LinkTable我需要以一种方式输出的结果,每个奖杯的所有以前的获胜者将列出每个奖杯,因为目前每个结果只是循环给我一个吨的数据。

代码语言:javascript
复制
Trophies     Winners     LinkTable
--------    ---------    ---------
TrophyID     WinnerID    LT_WinnerID
TrophyName   WinnerName  LT_TrophyID
Description    Year
Image

SQL连接如下所示

代码语言:javascript
复制
$trophylist = mysql_query("
SELECT TrophyID, TrophyName, Description, Image, WinnerID, WinnerName, Year 
FROM LinkTable
INNER JOIN Winners ON (LinkTable.LT_WinnerID = Winners.WinnerID) 
INNER JOIN Trophies ON (LinkTable.LT_TrophyID = Trophies.TrophyID)");

如果我通过while循环输出结果,正如预期的那样,将为每个获胜者返回一行新行,奖杯旁边还有奖杯。

我认为这是一个foreach循环,我需要使用它来为奖杯创建一个数组,但我现在有点困在想法上了,因为我发现的一切似乎都没有多大意义,所以如果有人给我指出正确的方向,我将非常感激。

EN

回答 1

Stack Overflow用户

发布于 2014-11-11 08:30:46

您可以将您的数据重新排序到一个按奖杯和年份索引的二维数组中。

代码语言:javascript
复制
$n = mysql_num_rows($trophylist);
for ($i=0; $i<$n; $i++)
{
  $row = mysql_fetch_array($trophylist);
  $trophyId = $row['TrophyID']; 
  $year = $row['Year'];
  $newlist["$trophyId"]["$year"] = $row; 
}

然后,您可以轻松地使用$newlist数组来输出给定奖杯的所有获奖者或给定年份的所有获奖者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26854434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档