代码点火器生成动态表行数据



我正在尝试加载动态表数据,我的 URI 是;

example.coma/admin/view/form/<form_id>

我的模型查询是;

public function getRecords($table, $form_id) {
$this->db->select('*');
$this->db->from($table);
$this->db->where('form_id', $form_id); 
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result_array(); 
} 
}

这返回了一个数据数组,我需要基于这个数组构建一个 HTML 表。

我将展示查询返回的两个不同数组的示例。

阵列 1.

(select * from members where form_id = 123)

Array
(
[0] => Array
(
[id] => 104
[member_no] => 
[firstname] => Peter
[lastname] => Keys
[address] => 17 main road
[email] => P3TER@HOTMAIL.CO.UK
[postcode] => UK123
[city] => London
[telnum] => 123123123
[fk_form_submission_id] => 123
)
)

阵列 2.

(select * from orders where form_id = 123)

Array
(
[0] => Array
(
[colour] => blue 
[type] => shirt
[age] => 34
[size] => medium
[quantity] => 2
[discount] => Y
[posted] => N
)
)

我想要实现的是显示一个垂直表格来显示数据集。显然,每个表都有不同的行名,下面的示例;

表 1.

+---------------+-------+
| ID            | 104   |
+---------------+-------+
| Member Number |       |
+---------------+-------+
| First Name    | Peter |
+---------------+-------+
| Last Name     | Keys  |
+---------------+-------+
| etc           | etc   |
+---------------+-------+

表 2.

+--------+--------+
| Colour | blue   |
+--------+--------+
| P Type | shirt  |
+--------+--------+
| Age    | 34     |
+--------+--------+
| Size   | medium |
+--------+--------+
| etc    | etc    |
+--------+--------+

如何设置这些表行名称?我是否需要创建另一个表头数组并合并两个数组?

任何建议不胜感激。

我不确定我是否完全理解 - 但如果你想动态设置数组的键,你可以使用foreach循环来做到这一点:

<table>
<tr><th>Key</th><th>Value</th></tr>
<?php foreach($res[0] as $key => $val)
echo '<tr><td>'. $key . '</td><td>' . $val . '</td></tr>'; ?>
</table>

编辑:

如果您想将键名称更改为更易于显示的名称,我建议您使用另一个数组进行交换(大多数时候它是为了翻译......

$displayName = array("id" => "ID", "member_no" => "Member Number", "firstname" => "First Name" ..., "type" => "P type", ...);
foreach($res[0] as $key => $val)
echo '<tr><td>'. $displayName[$key] . '</td><td>' . $val . '</td></tr>';

您也可以使用array_combine但这需要知道您拥有哪种密钥......

请注意,仅当显示名称对于所有类型的键都是唯一的时,此解决方案才有效

最新更新