开发者

Codeigniter: Can I return multiple values from the same function?

开发者 https://www.devze.com 2023-03-28 19:35 出处:网络
I开发者_高级运维 would like to return the query results along w/ the row count without having to run multiple queries. Is this possible in Codeigniter? The following works for returning the query resu

I开发者_高级运维 would like to return the query results along w/ the row count without having to run multiple queries. Is this possible in Codeigniter? The following works for returning the query results, but is it possible to also count the number of entries found?

Controller:

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

Model:

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


$bindings = array($this->user_id, '%'.$item_name.'%');

$records = $this->db->query($sql, $bindings)->result();

return array(
    'records' => $records,
    'count' => count($records),
);

Then, in your controller:

$query = $this->item_model->searchItem($item_name);

$data['records'] = $query['records'];
$data['count'] = $query['count'];


Option one

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

Option two

// 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();


You can send as many variables from a function as you want ..However plz remember that a function is supposed to do one UNIT of work . thus this rule must not be violated. we can used contrel structure

if this {return A;} elseif () {return B;} else {return C;}

ALso we can send (bundle) variables in an array and send

0

精彩评论

暂无评论...
验证码 换一张
取 消