从orders表里取出数据,然后去distribution表和distribution_real表取路区和站点的名称。
方法一:傻逼做法
直接循环orders数据,然后在循环里写sql,去取自己需要的数据。
foreach($orders as $order){
$distributionId = $order['distribution_id'];
$sql = "select name from distribution where id=$distributionId";
$distribution = $db->fetchOne($sql);
$distributionName = $distribution['name'];
}
方法二:弱智做法
取出distribution表里的所有数据,然后循环,把路区id做为key,路区名称作为值,组装成一个一维数组。然后循环orders数据,以id来取路区值。
$distributionInfo = [1 => '路区一',2 => '路区2'];
foreach($orders as $order){
$distributionId = $order['distribution_id'];
$distributionName = $distributionInfo[$distributionId];
}
方法三:nice做法
先循环orders数据,取出路区id,然后取出路区数据,然后在循环orders和distributions数据。
$distributionIds = [];
foreach($orders as $order){
$distributionIds[] = $order['id'];
}
$distributionIdsStr = implode(',',$distributionIds);
$sql = "select id,name from distribution where id in ($distributionIdsStr)";
$distributionTemps = $db->fetchAll($sql);
$distribution = [];
foreach($distributionTemps as $distributionTemp){
$distribution[$distributionTemp['id']] = $distributionTemp['name'];
}
foreach($orders as $order){
$distributionId = $order['distribution_id'];
$distributionName = $distribution[$distributionId];
}