我对CodeIgniter完全不熟悉。
假设我有一个用户表,如下所示:
ID|NAME|PASS | ...
1 |n1__|p1xxx| ...
2 |n2__|p2xxx| ...
..|....|.....| ...
要在HTML表格中显示,我应首先查询表User中的所有数据,然后在User_Controller中调用它以将$data['users']
传递给我的视图。
通常情况下,我们应该知道所有字段名称以获取特定字段。例如:
<?php if (count($users)): foreach ($users as $user): ?>
<tr>
<td><?php echo $user->id; ?></td>
<td><?php echo $user->name; ?></td>
<td><?php echo $user->pass; ?></td>
<td><?php echo $user->...; ?></td>
<td><?php echo $user->...; ?></td>
</tr>
<?php endforeach; endif; ?>
如果我们处理数百个字段,这是一种令人沮丧的方式。
我的问题很简单。我们可以编码而不提及 - &gt; id, - &gt; name, - &gt; pass,..?
我想我们可以使用嵌套的foreach
。但是,我没有找到如何实现它。
答案 0 :(得分:1)
您可以使用嵌套循环来完成结果:
$query = $this->db->query('SELECT * FROM user');
foreach($query->result() as $result){
foreach($result as $key => $value){
//key will be the field name and value will be
//the content of the field
echo $key . ' - ' . $value .'<br>';
}
}
这会打印出类似
的内容ID - 1
NAME - n1__
PASS - p1xxx
ID - 2
NAME - n2__
PASS - p2xxx
基于您的示例表(显示您发布的字段 - 如果有更多字段,则会包含它们)。
答案 1 :(得分:0)
祝福codeigniter调用HTML Table Class http://ellislab.com/codeigniter/user-guide/libraries/table.html
它将完全按照您的意愿执行 - 从数据库中获取结果并将其显示为表格 - 无需命名字段!
// Always use active record when possible
// this will return all fields and records
if( $data['users'] = $this->db->get('users'); ) {
// Load your view
}
// In the view
$this->load->library('table');
echo $this->table->generate($users);
它会做更多的工作,请查看文档以获取更详细的示例。将它与一个小小的CSS结合起来,你可以用一点代码创建非常复杂的数据表。