帮帮我,当我要创建动态表时,我就得到了堆栈
所以程序的想法是我们可以容纳一个数据库的选择字段并显示它。 因此,如果我们在数据库的表上有此字段:
地址
我们只想显示名称和地址,所以我将规则保存在数据库中(选择名称,地址)
但是问题出在我显示动态表时,当字段总是变化时如何制作动态表(例如:也许该字段仅是Age或Name和age,或者我们仅显示我配置的所有#it)
我试图将查询结果放入一个数组并像这样显示。
<table>
<?php for($x=0;$x<$length_array;$x++){ ?>
<tr>
<?php for($y=0;$y<$width_array;$y++){ ?>
<td><?php $result[$length_array][$width_array] ?></td>
<?php } ?>
</tr>
<?php } ?>
</table>
注意:变量$ result来自结果查询,我将其更改为数组,但是问题是我无法在此代码中计算数组的长度和宽度。
答案 0 :(得分:1)
这取决于您的结果集如何返回,但是根据上面的代码,我将假设您的结果是一个数组数组。
首先考虑一下您想要什么:您想要一个html表,该表的标头给出每一列的名称,然后为结果集中的每条记录提供一行。
我非常不喜欢混合使用php和html,因此我将使用不同的语法样式,但是无论使用哪种样式,步骤都是相同的。这种方式使逻辑更容易阅读。
首先,制作桌子。
<?php
$html = '<table>';
现在,您要向表中添加标题,并为结果中的每一列创建一个单元格。在此之前,您需要回答:您将在哪里获取列的名称?有两个可能的答案; 1)直接从您的查询结果中获取,或2)对它们进行硬编码。
直接从查询结果中获取它们要灵活得多,但是您为数据库列指定的名称可能并不总是友好的。
$columnNames = ['Name', 'Address'];
----或----
$firstRow = $result[0]; // of course we have checked that the result set is not empty!
$columnNames = array_keys($firstRow); // adjust if rows are objects instead of arrays
现在输出标题:
$html .= '<thead>';
foreach($columnNames as $columnName) {
$html .= '<th>' . $columnName . '</th>';
}
$html .= '</thead>';
现在,就像您对上一个问题的回答一样,我们可以继续进行操作,在表中为结果集中的每个项目创建一行。对于每一行,您都有一个内部循环,可以为每个单元格创建标记。
$html .= '<tbody>';
foreach($result as $row) {
$html .= '<tr>';
foreach($row as $cell) {
$html .= '<td>' . $cell . '</td>';
}
$html .= '</tr>';
}
$html .= '</tbody>';
$html .= '</table>';
print $html;