<table class="table table-striped table-framed table-centered">
<thead>
<tr>
{foreach from=$columns key=num item=columninfo}
<th><font color="black">{$columninfo.columnname}</font></th>
{/foreach}
<th> </th>
</tr>
</thead>
<tbody>
{foreach from=$rows key=num item=rowinfo}
<tr>
<td><font color="black">{$rowinfo}</font></td>
<td><a href="database.php?action=viewtable&table={$tableinfo.tablename}&database={$currentdatabase}"><input class="btn btn-danger" type="button" value="Delete" onclick="return confirm('Are you sure you would like to delete this row?');"/></td></a>
</tr>
{/foreach}
</tbody>
</table>
我一直试图让它输出数组中的所有数据,但是第二个数组$ rows没有输出任何数据。
第一个效果很好,并输出列的所有名称。
第二个数组看起来像这样。
Array ( [0] => Array ( [ID] => 3 [Name] => Eirik [Age] => 20 ) )
我要做的是创建一个数据库管理系统,您可以在其中访问数据库并查看表,列和行。目前我只缺少要完成的行。它获取所有列名称,并生成表头,然后转到行。这里的问题是,当我尝试将行打印到表中时,我不能使用列名来访问数组,因为每个数据库的列名都不同。
答案 0 :(得分:1)
你走在正确的轨道上:只需遵循第一个foreach中使用的相同模式。
$rowinfo
是一个数组,如果要打印它们,则需要访问其元素。只需编写$rowinfo['ID']
(或$rowinfo.ID
)即可访问$rowinfo
数组的ID元素。
对要打印的每个元素重复。
附注:您可以为foreach块使用更清晰的PHP语法:
{foreach $rows as $num => $rowinfo}
相当于
{foreach from=$rows key=num item=rowinfo}
但在我看来更具可读性。
关于编辑,如何打印具有不同列(名称和可能的编号)的动态数组,您可以尝试以下方法:
{foreach $rows as $num => $rowinfo}
<tr>
<td>
{foreach $rowinfo as $key => $value}
{$key}: {$value} {* /*of course you'll need to decide HOW to render them */ *}
{/foreach}
</td>
<td>[...]</td></a>
</tr>
{/foreach}
基本上,你将使用外部foreach循环你在第二个数组中获得的所有行。在内部的内容中,您将循环遍历单行的内容,选择其键(列名称)及其关联值。