动态地建立两者和两者

时间:2013-07-16 20:22:21

标签: php mysql loops while-loop

表中的列数基于表中的数据量。表中的行数基于不同表中的行数。这些表的一个例子如下

environments        patches
  id | name           id |    name
 ____|______         ____|____________
   1 | dev             1 | firstPatch
   2 | test            2 | secondPatch
   3 | prod            3 | thirdPatch

我正在寻找的最终结果将是以下<table>

 _________________________________
| Patch Name  | dev | test | prod |
|_____________|_____|______|______|
| thirdPatch  |     |      |      |
| secondPatch |  x  |      |      |
|_firstPatch__|_____|______|______|

我理解如何使用while()循环来构建表头。我理解如何使用while()来构建行。

echo "<tr>";
while ($env = $listEnvs->fetch_assoc()){
    echo "<th>".$env['name']."</th>"
}
echo "</tr>";

--AND--

while ($patch = $listPatches->fetch_assoc()){
    echo "<tr><td>".$patch['name']."</td></tr>";
}

我正在努力的是每个补丁/环境对的单元格将具有从其他几个表中提取的数据。因此,了解patch.id以及environment.id非常重要。示例x的单元格为patch.id = 2, environment.id = 1构建表格时,如何确保每个单元格都包含此必要信息?

1 个答案:

答案 0 :(得分:1)

尝试创建像$content[$patch.id][$environment.id]这样的数组。

然后,您可以将echo($content[$patch.id][$environment.id])添加到while的{​​{1}}。您可以浏览补丁,因此$patch已知。对于$patch.id,您应该创建一个包含所有environment.id的数组,并使用$environment.id遍历它,其中$environment.id[i]应该随每个新列增加(并在新行时设置为0)开始了。)

(坏)伪代码:

$i