Codeigniter如何从模型中的同一列返回多行

时间:2018-09-17 08:30:51

标签: mysql codeigniter

我需要获取所有被查询过滤的行。但是只有第一行从模型返回到控制器。

下面是我的模型函数。如何获取所需的所有数据?

public function getOfferTags($param) {

    $this->db->select('tags.*');
    $this->db->from('tags');
    $this->db->join('offer_tag', 'offer_tag.tag_id = tags.id');
    $this->db->join('offers', 'offers.id = offer_tag.offer_id');
    $this->db->where('offers.id', $param);
    $query = $this->db->get();
    return $query->row();    

}

2 个答案:

答案 0 :(得分:2)

只需不返回行,并在该位置以

的数组形式获取
return $query->result_array();

之后,检入控制器并将结果存储在数组中。

答案 1 :(得分:1)

我只是想补充一下,因为您不熟悉CI,因此在使用数组以防止出现通知或问题之前,应始终检查它们是否为行。使用mehta的方法,您可以执行if(count($rows) > 0) { //rows exist } else { // no rows, display error .etc. }或执行以下操作:

$query = $this->db->get();
if ($query->num_rows() > 0) {
    return $query->result_array(); // or result() for obj
}
return false;

用法:

if ($this->somemodel->getOfferTags($stmt)) {
    // has data
} else {
    // no data
}

从良好的做法入手很重要,这会有所帮助;)