-> result()未显示所有数据/行

时间:2019-07-10 02:26:47

标签: php sql codeigniter

我有一个问题

假设我们的数据库中有这2个表

第一张表:category_lists

enter image description here

第二张表:data_category

enter image description here

因此如果list_data_id等于1 ,则意味着如果您查看 data_category表(其为 6 < / strong>和 7

现在我要从 category_list表查询,以便 6 7 会回显清障车汽车现金

这是我的代码的样子:

下面是我的控制器:

 public function index($listing_name)
{
    $this->load->view('layouts/head_layout_seo');
    $this->load->view('layouts/head_layout');

    $data['main_view'] = 'listings/main_view';
    $data['listing_data'] = $this->Listing_model->get_detail_listing($listing_name);

    $list_id = $data['listing_data']->list_data_id; // this is what I get list_data_id is equal to 1

    $data['category_ads'] = $this->Ads_model->get_ads($list_id); // this is what you need to look

    $this->load->view('layouts/main', $data);

    $this->load->view('layouts/footer_layout');

} 

下面是我的模型:

  public function get_ads($list_id)
{
    $this->db->where('list_data_id', $list_id);
    $query = $this->db->get('data_category');
    $query = $query->result();
    //return $query;
    if (count($query) > 0) {    
        for ($i=0; $i < count($query); $i++) { 
            foreach ($query as $value) {
                $this->db->where('category_lists_id', $value->category_lists_id);
                $querys = $this->db->get('category_lists');
                //print_r($query);
                return $querys->result();
            }
        }    
    }
} 

以下是我的观点:

 foreach ($category_ads as $value) {
<p><a href=""><?php echo $value->categories; ?></a></p>  }

在上面的代码中,我仅获得 1个数据,即清障车,如您从表格中看到的,它假设显示的是 2个数据 > 清障车汽车现金

有人可以帮我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

在您的模型中尝试此操作,因此无需两次调用DB,也无需loop

public function get_ads($list_id)
{
   $this->db->select('cl.category_lists_id,cl.categories');
   $this->db->from('category_lists cl');
   $this->db->join('data_category dc','cl.category_lists_id = dc.category_lists_id');
   $this->db->where('dc.list_data_id',$list_id);
   $query = $this->db->get();
   if($query->num_rows() > 0){
       return $query->result();
   }else{
       return array();
   }
}