【问题标题】:how make multidimensional result from bd in codeigniter如何在codeigniter中从bd生成多维结果
【发布时间】:2015-10-07 16:30:42
【问题描述】:

我对数组有一个大问题,我对它们没有什么经验。

我有 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=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;

通过这个查询我得到这个: enter image description here

这是错误的,因为它向我显示了所有供应商,而不是每种材料对应​​一个,有什么帮助吗?

【问题讨论】:

  • 您可以使用 SQL join 或 codeigniter 活动记录集轻松完成此操作,请参阅链接https://ellislab.com/codeigniter/user-guide/database/active_record.html
  • 我在使用joins,问题不在于如何构建数组

标签: php database codeigniter multidimensional-array


【解决方案1】:
        $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"];

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 2019-07-25
    相关资源
    最近更新 更多