在不知道codeIgniter中的fieldname的情况下获取数据

时间:2013-08-20 14:06:55

标签: codeigniter get field

我对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。但是,我没有找到如何实现它。

2 个答案:

答案 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结合起来,你可以用一点代码创建非常复杂的数据表。