我想使用<?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; ?>
答案 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);