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

wkftcu5l  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(280)

我需要得到查询筛选的所有行。但是只有第一行从模型返回给控制器。
下面给出的是我的模型函数。如何获得所需的所有数据?

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

}
rur96b6h

rur96b6h1#

只是不返回行并在该位置上作为数组形式获取,如

return $query->result_array();

然后签入控制器并在数组中得到结果。

ejk8hzay

ejk8hzay2#

我只是想补充一点,因为您是ci新手,所以在使用数组之前,应该始终检查它们是否是行,以防止出现通知或问题。用 meta的方法 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
}

从良好的实践开始很重要,这会有所帮助;)

相关问题