场景:要显示所有用户的订单数量,没有购买过的显示0.
使用会员表和订单表进行leftjoin操作,然后使用where条件订单状态为已完成的,where orderstate=’processed’
最后的结果只显示购买过的用户。
解决办法
1 :在上面的基础上查找出购买过的用户的订单,在关联一个会员表,这样就可以显示出所有的用户的订单数量
2:会员表和订单表进行leftjoin操作,显示出所有用户以及所有用户下的订单。用代码进行数据的过滤
$allBroker为所有的结果;$allBrokerAndOrder=array();foreach ($allBroker as $Bkey => $Bvalue) {if(empty($allBrokerAndOrder[$Bvalue->id]['sumQuantity'])){// 没有初始值为数字的变量无法进行赋值运算$allBrokerAndOrder[$Bvalue->id]['sumQuantity'] =0;}if($Bvalue->orderState == 'processed'){$allBrokerAndOrder[$Bvalue->id]['sumQuantity'] += $Bvalue->quantity;}$allBrokerAndOrder[$Bvalue->id]['info'] = $Bvalue;}echo count($allBrokerAndOrder);echo '<pre>';print_r($allBrokerAndOrder);echo '</pre>';die;
