场景:要显示所有用户的订单数量,没有购买过的显示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;