连表查询后数据处理
来源:互联网 发布:sql查询去除重复行 编辑:程序博客网 时间:2024/05/21 12:00
项目中的问题
------
现在的需求是将用户的信息渲染到前端页面,用户在前台可以选择是否填写手机号码信息,在数据库中也是通过中间表的方式将数据串联起来,数据表大概如下:
可以看到中间表中有一些用户是没有填写手机号码的,如果直接 进行连表查询,那么渲染到前端的数据就会有缺少(只会显示5条数据),所以我就想了一个办法解决这个问题:
1.通过关联模型,我先获取到了这个5个用户的所有数据(包括手机号码);
2.注意点:我使用 user_id作为二维数组的第一维下标;
3.我的想法是:我将手机号和user_id捆绑在一起,在循环遍历user数据的时候,根据user_id我就可以判断对应user_id 的用户是否存在手机号数据,然后再使用一个三元判断,进行赋值!!;
4.具体的代码如下:
最后得到的结果就是,如果用户填写了手机号码,那么对应的数据中就会包含***手机号码***,如果没有填写手机号码,则会显示***未填写******
上面的代码写的有点拙劣,但是基本的效果还是达到了就行!***
具体的代码:
public function get_mobile(){ $data = $this->name('UserMobile')->select(); //将 user_id作为下标重组数组 根据该数组 三元判断是否存在 完善所有的用户数据 foreach($data as $k=>$v){ $mobile[$v['user_id']]['mobile'] = $v['mobile']; } $user = $this->name('User')->select(); foreach($user as $k=>$v){ $user_data[$k]['user_id'] = $v->user_id; $user_data[$k]['u_name'] = $v->u_name; $user_data[$k]['headimgurl'] = "<img src='$v->headimgurl' style='width: 80px'>"; $user_data[$k]['company'] = $v->company; $user_data[$k]['job'] = $v->job; $user_data[$k]['mobile'] = empty($mobile[$user_data[$k]['user_id']]['mobile']) ? '未填写' : $mobile[$user_data[$k]['user_id']]['mobile']; } return $user_data; }
0 0
- 连表查询后数据处理
- access 连表查询
- Oracle 连表查询
- mysql 连表查询
- sql连表查询
- 连表更新、查询
- 连表查询
- Dapper 连表查询
- SQLServer 连表查询
- 连表查询
- mysql连表查询
- SQL连表查询
- 连表查询
- 数据库连表查询
- SQL连表查询
- oracle连表查询
- 连表查询
- 连表查询时,from后子句的执行顺序和优化
- 关于java取反运算
- Java中堆内存和栈内存详解
- CALayer的anchorPoint和position
- RGB和HSV颜色转换
- 互联网之子Aaron Swart----技术金字塔上的刀锋
- 连表查询后数据处理
- Bouncy Castle扩充算法支持
- 【Java】对象、类(class)、变量(成员变量field、局部变量)、包(package)
- Qt程序启动画面播放(gif与swf两种动画格式)
- 说说量子力学
- idea快捷键
- socket、tcp、udp、http 的认识及区别
- java实现组合-n个数取其中k个数的所有组合
- linux 性能监控命令top