ds3422222 2015-10-07 16:30
浏览 15

如何在codeigniter中使用bd的多维结果

I have a big problem with arrays, I have little experience with them.

I have 3 tables (materials, suppliers and a third table to relate both with id)

what I need is to take the data for each material and a list of suppliers

$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;

With this query I get this : enter image description here

And this is wrong, because it shows me all suppliers, not taking one corresponding to each material, any help?

  • 写回答

1条回答 默认 最新

  • doushi8186 2015-10-08 21:24
    关注
            $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"];
    
            }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序