Codeigniter foreach只显示一个div

时间:2015-01-01 19:07:22

标签: php mysql codeigniter foreach

我的表有4个具有唯一ID的类别。而我所做的只是查询数据库并包含一个foreach循环,它根据正在获取的子类别来获取cateogry id。由于我的表有4个类别。所以运行循环必须返回div 4次,我将在视图中回显。这就是我的概念。但它只返回一次。所以div main_div只打印一次。我不明白这里有什么问题。

在我的模型中

    public function getSubCategory(){

       $sub_div = null;


        $query_main_cat = $this->db->query("SELECT * FROM main_category");

        foreach($query_main_cat->result_array() as $row){

        $mc_id = $row['id'];

        $query_get_sub = $this->db->get_where("sub_category", array('main_cat_id' => $mc_id));

        foreach ($query_get_sub->result_array() as $row_sub_cat) {

        $sub_cat_id = $row_sub_cat['id'];
        $sub_cat_name = $row_sub_cat['sub_name'];
        $sub_cat_mc_id = $row_sub_cat['main_cat_id'];

        $sub_div .= '<div class="col-sm-6 col-md-4"> 
                    <div class="table-responsive">          
                        <table class="table table-striped text-center">
                        <th class="text-center">'.$sub_cat_name.'</th>
                          <tbody>
                            <tr><td>Hello</td></tr>
                            <tr><td>Hello</td></tr>   
                          </tbody>
                        </table>   
                    </div>     

                 </div>';


        }

        $main_div = '<div class="tab-pane" id="tab'.$mc_id.'">

                    '.$sub_div.'

                    </div>';

       return $main_div;

       }

}

在我的控制器中

     public function load_view(){

       $this->load->model("get_category");



       $data['sub_category'] = $this->get_category->getSubCategory();

       $this->load->view('index', $data);

    }

在视图中

       echo $sub_category;

这应该返回div main_div 4次。因为我的桌子里有4行。但只有一次出现。需要一些帮助。

1 个答案:

答案 0 :(得分:0)

你只得到一次问候,因为你过早地退出了循环。

return "hello";

你不应该在循环中使用return,而是累积字符串并在结尾处返回它。

$text = '';
foreach($query_main_cat->result_array() as $row){
     $text .= "hello";
}
return $text;