我想沿着行数返回查询结果,而不必运行多个查询。这在Codeigniter中是否可行?以下工作用于返回查询结果,但是是否也可以计算找到的条目数?
控制器:
$data['records'] = $this->item_model->searchItem($item_name);
型号:
$query = $this->db->query($sql, array($this->user_id, '%'.$item_name.'%'));
return $query->result();
答案 0 :(得分:14)
$bindings = array($this->user_id, '%'.$item_name.'%');
$records = $this->db->query($sql, $bindings)->result();
return array(
'records' => $records,
'count' => count($records),
);
然后,在你的控制器中:
$query = $this->item_model->searchItem($item_name);
$data['records'] = $query['records'];
$data['count'] = $query['count'];
答案 1 :(得分:3)
选项一
$query = $this->db->query($sql, array($this->user_id, '%'.$item_name.'%'));
$data['result'] = $query->result();
$data['rows'] = $query->num_rows();
return $data;
选项二
// model
$query = $this->db->query($sql, array($this->user_id, '%'.$item_name.'%'));
return $query;
// controller
$data['query'] = $this->item_model->searchItem($item_name);
// then you have $data['query']->result();
// and $data['query']->num_rows();
答案 2 :(得分:0)
您可以根据需要从函数中发送尽可能多的变量。但是请记住,函数应该执行一个UNIT工作。因此,不得违反这条规则。 我们可以使用contrel结构
如果这个{return A;} elseif(){return B;} else {return C;}
我们也可以在数组中发送(包)变量并发送