-1

我正在从列名所在的数据库中检索结果script_idscript_name等等,现在我正在做的是在从表中获取结果之后说我获取了 2 列,例如script_idscript_name所以我保存了用逗号分隔的名称并使用循环,但是如果我不知道用户选择了多少参数,又会返回多少呢?例如在做什么

<table>
  <tr>
   <?php
    $columns = explode(',', $fetch_column_list);
    foreach($columns as $throw_names) {
         echo '<td>'.$throw_names.'</td>';
     }
   ?>
  </tr>
 //And here I loop the results
</table>

但是如果我有一个带有不同参数的表单来选择所以在这里我不能有我定义的列名的预定义列表,因为用户可能选择了也可能没有选择该列

那么如何在前端使用 MY DEFINED COLUMN HEADERS 动态生成表

4

2 回答 2

1

你不需要知道你有多少列。您必须使用字段名称而不是数字

<?
$trans = array (
    'script_name'  => 'Fancy script name field header',
    'script_value' => 'Fancy script value  field header',
}
$data = $db->getAll("SELECT * FROM table");
$keys = array_keys($data[0]);
?>
<table>
  <tr>
<? foreach ($keys as $k): ?>
    <td><?=$trans[$k]?></td>
<? endforeach ?>
  </tr>
<? foreach ($data as $row): ?>
  <tr>
<?     foreach ($row as $one): ?>
    <td><?=$one?></td>
<?     endforeach ?>
  </tr>
<? endforeach ?>
</table>
于 2013-01-18T20:18:08.637 回答
0

你如何获取你的数据?

如果你使用类似mysqli_fetch_assoc的函数,你可以使用

$row = mysqli_fetch_assoc( ... );
$columns = array_keys($row)
于 2013-01-18T19:04:17.280 回答