Php 如何在codeigniter中从bd生成多维结果
我对数组有一个很大的问题,我对它们几乎没有经验 我有3个表(材料、供应商和第三个表,与id相关) 我需要的是获取每种材料的数据和供应商列表Php 如何在codeigniter中从bd生成多维结果,php,database,codeigniter,multidimensional-array,Php,Database,Codeigniter,Multidimensional Array,我对数组有一个很大的问题,我对它们几乎没有经验 我有3个表(材料、供应商和第三个表,与id相关) 我需要的是获取每种材料的数据和供应商列表 $this->db->select('m.id as id_material,m.nombre as detalle'); $this->db->from('materiales as m'); $res = $this->db->get(); $result =array(); $prov
$this->db->select('m.id as id_material,m.nombre as detalle');
$this->db->from('materiales as m');
$res = $this->db->get();
$result =array();
$prov=array();
foreach($res->result_array() as $key){
$result[$key["detalle"]]=$key["detalle"];
$this->db->select("m.id as idm,m.nombre as nom,p.nombre_comercial as prov_nom");
$this->db->from('materiales as m');
$this->db->join('materiales_proveedores as mp', 'm.id = mp.id_material', 'inner');
$this->db->join('proveedores as p', 'p.id = mp.id_proveedor', 'inner');
$res2 = $this->db->get();
foreach($res2->result_array() as $key2){
$result["proveedores"][$key2["prov_nom"]]=$key2["prov_nom"];
}
}
return $result;
通过此查询,我得到以下结果:
这是错误的,因为它向我显示了所有供应商,而不是每个材料对应的供应商,有任何帮助吗?您可以使用SQL join或codeigniter活动记录集轻松完成此操作,请参见链接
https://ellislab.com/codeigniter/user-guide/database/active_record.html
我正在使用连接,问题不在于如何构建阵列
$this->db->select("m.id as idm,m.nombre as nom,**distinct** p.nombre_comercial as prov_nom");
$this->db->from('materiales as m');
$this->db->join('materiales_proveedores as mp', 'm.id = mp.id_material', 'inner');
$this->db->join('proveedores as p', 'p.id = mp.id_proveedor', 'inner');
$res2 = $this->db->get();
foreach($res2->result_array() as $key2){
$result["proveedores"][$key2["prov_nom"]]=$key2["prov_nom"];
}