0

控制器:

$data['result'] = $this->pagination_model->search($searchterm,$limit);

模型:

public function search($searchterm,$limit)
    {
        $sql = "SELECT * FROM recipe 
                WHERE name LIKE '%" . $searchterm . "%' LIMIT " .$limit . ",2";
        $q = $this->db->query($sql);
        if($q->num_rows() > 0)
        {
            foreach($q->result() as $row)
            {
                $data[] = $row;
            }
            return $data;
        }
        else
        {
            return 0;
        }
    }

如果我使用 foreach 循环打印结果,它会起作用,但是当我尝试使用 table helper 打印它时:

$this->table->generate($result);<--- $result= 来自控制器。

尝试打印结果时会发布错误,

致命错误:不能在第 178 行的 C:\www\Finals\system\libraries\Table.php 中使用 stdClass 类型的对象作为数组

由于该区域受到限制,我无法确定它为什么不接受数据。任何熟悉表格库的人都可以澄清什么类型的数据表格接受。

我可以在打印中使用 foreach 方法,但我热衷于学习和使用 ci 助手。

编辑:附加信息,

控制器:从简单地使用分页列出数据库上的所有记录。以上是搜索过滤器完成的时间。

$data['records'] = $this->db->get('recipe', $config['per_page'], $this->uri->segment(3));

表格助手接受数据并打印它。

$This->table->generate($records); 

两个返回的数据集是否有任何区别。

将尝试找出print_r()

4

1 回答 1

0

CodeIgniter 将结果行作为对象返回,而不是数组。从用户指南

结果()


此函数将查询结果作为对象数组返回,或者在失败时返回空数组。

您必须使用以下符号访问这些字段:

foreach($q->result() as $row)
{
    $data[] = $row->data;
}

或者如果你真的想要一个数组,你可以使用:

$q->result_array()

这将返回与关联数组相同的信息。

于 2013-10-08T20:54:12.887 回答