我正在尝试加载动态表数据,我的 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
但这需要知道您拥有哪种密钥......
请注意,仅当显示名称对于所有类型的键都是唯一的时,此解决方案才有效