0
<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>&nbsp;</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 ) )

我要做的是创建一个数据库管理系统,您可以在其中访问数据库并查看表、列和行。目前我只缺少要完成的行。它获取所有列名,并制作表格标题,然后转到行。这里的问题是,当我尝试将行打印到表中时,我不能使用列名来访问数组,因为每个数据库的列名都不同。

4

1 回答 1

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 循环您在第二个数组中获得的所有行。在内部你循环单行的内容,选择它的键(列名)和它们的关联值。

于 2013-09-19T10:27:22.423 回答