2013-08-20 39 views
0

我完全是CodeIgniter的新手。在codeIgniter中获取数据而不知道字段名称

假设我有一个用户表如下:

ID|NAME|PASS | ...

1 |n1__|p1xxx| ...

2 |n2__|p2xxx| ...

..|....|.....| ...

显示它在HTML表格,我应该查询先把表User中的所有数据,然后在我的User_Con中调用它troller通过$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。但是,我没有找到如何实现它。

回答

0

走好运气笨所说的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结合起来,你可以用一些简单的代码创建非常复杂的数据表。

0

您可以使用嵌套循环都要经过结果:

$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 

(与你明明张贴的领域 - 如果有更多的领域,他们将被包括在内)。

+0

我按照您的建议重新编码。但是,我面临一些问题。 '<?如果PHP(计数($用户))' '{回声';' '的foreach($用户 - >结果()作为$结果){' 的foreach($结果如$ key => $ value)//键将是字段名称,值将是 //字段 echo'​​'的内容。 $值。''; } echo''; } '; } else { echo' 我们找不到任何用户。 '; }?> 错误是:调用一个非对象的成员函数result()。你可以帮帮我吗? – gusdewa

+0

查询存在问题,或者您没有使用db类。 ' - > result()'适用于从使用'$ this-> db'生成的查询返回的对象。 http://ellislab.com/codeigniter/user-guide/database/results.html – stormdrain

相关问题