分页结果与表助手

时间:2013-10-08 17:42:39

标签: php codeigniter pagination helper

控制器:

$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循环打印结果,它会起作用,但是当我尝试使用表助手打印它时:

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

尝试打印结果时会发错,

  

致命错误:无法在第178行的C:\ www \ Finals \ system \ libraries \ Table.php中使用stdClass类型的对象

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

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

编辑:其他信息,

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

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

表助手接受数据并将其打印出来。

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

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

将尝试找出print_r()

1 个答案:

答案 0 :(得分:0)

CodeIgniter将结果行作为对象返回,而不是数组。来自user guide

  

<强>结果()

     
     

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

您必须使用以下表示法访问字段:

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

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

$q->result_array()

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