Codeigniter从数据库填充表

时间:2011-05-16 14:21:43

标签: php database codeigniter foreach html-table

我想使用<?php foreach; ?>将数据库中的所有数据填充到表中,但我无法使其工作。请检查我的代码:

controller
$data['query'] = $this->db->query('SELECT * FROM users');
$this->load->view('users_view',$data);

View
<?php foreach ($query->result_array() as $row)
{ ;?>
<tr>
<td><?php echo $row['usrID'];?></td>
<td><?php echo $row['usrName'];?></td>
<td><?php echo $row['usrPassword'];?></td>
</tr>
<?php } ?>
<?php endforeach; ?>

1 个答案:

答案 0 :(得分:5)

我会在视图中推荐你的foreach的替代语法......

看起来你应该有一些语法错误。

<?php foreach ($query->result_array() as $row): ?>
    <tr>
        <td><?php echo $row['usrID'];?></td>
        <td><?php echo $row['usrName'];?></td>
        <td><?php echo $row['usrPassword'];?></td>
    </tr>
<?php endforeach; ?>

编辑 - 指出您的语法问题。

<?php foreach ($query->result_array() as $row)
{ ;?> //<---- semicolon?
<tr>
<td><?php echo $row['usrID'];?></td>
<td><?php echo $row['usrName'];?></td>
<td><?php echo $row['usrPassword'];?></td>
</tr>
<?php } ?>
<?php endforeach; ?> //<--- no need for this when using regular foreach

这第一个分号就像写这样的foreach ......

foreach ($array as $ele) { ; //<--this would throw an error just like it should above.
    //do stuff
}

除了问题之外的意见

您应该在控制器中处理数据,只是发送要在视图中显示的数据数组,而不是整个查询对象。

所以...

控制器

$query = $this->db->query('SELECT * FROM users');
$data['users'] = $query->result_array();
$this->load->view('users_view',$data);