控制器:
$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()
答案 0 :(得分:0)
CodeIgniter将结果行作为对象返回,而不是数组。来自user guide:
<强>结果()强>
此函数将查询结果作为对象数组返回,或者 失败的空数组。
您必须使用以下表示法访问字段:
foreach($q->result() as $row)
{
$data[] = $row->data;
}
或者如果你真的想要一个数组,你可以使用:
$q->result_array()
将返回与关联数组相同的信息。