0

我对 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; ?>

如果我们要处理数百个字段,这是一种令人沮丧的方式。

我的问题很简单。我们可以在不提及 -> id、->name、->pass、.. 的情况下编写代码吗?我想我们可以使用嵌套的foreach. 但是,我没有找到如何实现它。

4

2 回答 2

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

根据您的示例表(显然您发布的字段 - 如果有更多字段,它们将被包括在内)。

于 2013-08-20T14:58:58.963 回答
0

祝你好运,codeigniter 称之为 HTML 表类 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 结合起来,您只需一点代码就可以创建非常复杂的数据表。

于 2013-08-20T20:20:08.753 回答