Codeigniter循环查询分类仅返回最后一条ID对应数据如何解决
问题原因
循环中每次对$data['catalog']做直接赋值操作,会覆盖上一次循环写入的内容,全部循环执行完成后变量只会保留最后一次的赋值结果,和SQL查询逻辑无关。
修复方案
先将$data['catalog']初始化为数组,循环中改用追加写入的方式存储每次的查询结果:
// 初始化空数组存储所有分类数据 $data['catalog'] = []; foreach($category as $cat){ $cat_id = $cat->id; // 追加当前分类的查询结果到数组中 $data['catalog'][] = $this->homemodel->getCatalog($cat_id); }
如果需要按分类ID快速索引对应数据,可以用分类ID作为数组键:
$data['catalog'] = []; foreach($category as $cat){ $cat_id = $cat->id; $data['catalog'][$cat_id] = $this->homemodel->getCatalog($cat_id); }
内容的提问来源于stack exchange,提问作者Himanshu Singh
相关产品推荐
相关产品推荐

