我收到的消息是:
遇到PHP错误
严重性:注意
消息:未定义的变量:查询
文件名:views / main.php
行号:12
这是我的控制器的代码:
function get_all(){
$this->load->model('book_model');
$this->load->library('table');
$this->load->helper('html');
$data['query'] = $this->books_model->books_getall();
$this->load->view('main', $data);
}
这是我的观点:
<h1> List of books in library</h1>
<table border="1"/>
<tr>
<th>ID</th>
<th>Title</th>
<th>Author</th>
<th>Information</th>
<th>Publisher</th>
<th colspan="2">Action</th>
</tr>
<?php
if(is_array($query)){
foreach ($query as $row){
echo "<tr>";
echo "<td>".$row->id."</td>";
echo "<td>".$row->title."</td>";
echo "<td>".$row->author."</td>";
echo "<td>".$row->information."</td>";
echo "<td>".$row->publisher."</td>";
echo "<td>".anchor('book/input'.$row->id,'Edit')."</td>";
echo "<td>".anchor('book/delete'.$row->id,'Delete')."</td>";
echo "</tr>";
}
}
?>
</table>
提前感谢您提供任何帮助
编辑:这是我的型号代码:
function get_all(){
$this->load->database();
$query = $this->db->get('books');
return $query->result();
}
答案 0 :(得分:0)
从我所看到的,第12行似乎是这一行:
if(is_array($query)){
错误消息是$ query未定义。当您将$ data ['query']传递给视图时,它将成为$ query。
我注意到你的模型也返回$ query-&gt; result()。这是不正确的 - 应该在循环内部使用result()来遍历结果,并且可以使用num_rows()来测试多于零的结果,如下例所示:
模型
function example()
{
$query = $this->db->get('books');
return $query;
}
控制器
$this->load->model('book_model');
$this->load->library('table');
$this->load->helper('html');
$data['query'] = $this->books_model->books_getall();
$this->load->view('main', $data);
查看
if($query->num_rows() > 0)
{
foreach($query->result() as $row)
{
// Do stuff here on each $row
}
}
我建议你看看this part of CodeIgniter's documentation,这实际上非常好。