Codeigniter:我可以从同一个函数返回多个值吗?

时间:2011-08-15 19:46:36

标签: codeigniter

我想沿着行数返回查询结果,而不必运行多个查询。这在Codeigniter中是否可行?以下工作用于返回查询结果,但是是否也可以计算找到的条目数?

控制器:

$data['records'] = $this->item_model->searchItem($item_name);

型号:

$query = $this->db->query($sql, array($this->user_id, '%'.$item_name.'%'));
return $query->result();

3 个答案:

答案 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;}

我们也可以在数组中发送(包)变量并发送