两张数据表关联查询

这篇博客介绍了如何在PHP中进行多表查询,通过model查询将数据从二维数组转换为一维数组,并在foreach中遍历,将Company表中的数据与Customer表关联,将company.name赋值给customer.origin。博主还提到了在处理一维数组时的注意事项,包括引用符号的使用和select、find查询的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔记一、多表查询
    两张表通过关联字段将一张表的company.name赋值给customer.origin

    我的思路:
        1、使用model查询将数据查询出来,查询结果为数二维组;
            $customer_model = model('Customer');
            $csr_get = $customer_model->get($value['id']);
        2、通过foreach将查讯的结果遍历为一维数组;
            foreach ($csr_all_toArray as $key => $value) {}
        3、将company中的数据通过模型查询出来,然后嵌套在foreach中,再次遍历;
        4、将遍历的数据赋值给$csr_get['origin'];
            $csr_get['origin'] = $origin_res['name']
        5、打印输出结果为一维数组;
            dump($csr_res);
        6、将一维数组转换为二维数组渲染到视图上。

    我的问题:
        一维数组转二维数组

    解决方案:
        使用model查询,将查询结果遍历:
        //获取关联的两张数据表
        $customer_model = model('Customer');
        $company_model = model('Company');
        $csr_all_toArray = $customer_model->select();

        foreach ($csr_all_toArray as &$value){
            $company = $company_model->where('id', $value['origin'])->find();
            $value['origin'] = $company['name'];
        }
        dump($csr_all_toArray);

    注意事项:
        1、引用符号,同指针一样,将变量指向了一个位置,而不是复制了内容。
           引用的意思是:不同的名字访问同一个变量内容。php的引用(就是在变量或者函数、对象等前面加上&符号)。
           $str = '第一个hello world';
           $str2= &$str;
           $str = '第二个hello world';
           echo $str2;
        2、select查询出的是多条数据,需要在模版volist循环打印出来
           find和get获取单条数据,可直接在模版打印,find 方法查询结果不存在,返回 null;
           默认情况下,find和select方法返回的都是数组,elect 方法查询结果不存在,返回空数组

        
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值