未定义变量:query - codeigniter



我收到消息:

遇到PHP错误

严重性:注意

消息:Undefined variable: query

文件名:视图/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(); 

}

从我看到的,第12行是这样的:

if(is_array($query)){

错误信息是说$query是未定义的。当你将$data['query']传递给视图时,它就变成了$query。

我注意到你的模型也返回$query->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
    }
}

我建议您看一下CodeIgniter文档的这一部分,它实际上非常好。

最新更新