我正在寻找一些帮助,以获得从尽可能少的数据库查询中获得结果以显示我想要的方式的最佳方式。
我想将我的一个查询结果列用作另一个表的新唯一列并合并类似数据。
例如
我运行这个查询..
SELECT pd.production_date,pd.production_time,pd.production_net,
p.part_number, w.worker_name
FROM production as pd
INNER JOIN parts as p
ON pd.product_id = p.part_id
INNER JOIN locations as l
ON pd.location_id = l.location_id
INNER JOIN workers as w
ON pd.worker_id = w.worker_id
WHERE pd.production_date BETWEEN '$from' AND '$to'
AND p.part_number='$part_number'
ORDER BY pd.production_date
我会得到这样的结果:
production_date--production_time--production_net--worker_name
2013-01-10--390--96--MMahe
2013-01-10--400--101--RMaloney
2013-01-11--460--96--JBurris
2013-01-11--210--43--MMahe
2013-01-14--285--48--LTaylor
2013-01-16--60--8--MRocquemore
2013-01-16--460--90--TUsher
2013-01-17--450--85--MRocquemore
2013-01-17--460--84--TUsher
2013-01-18--450--73--MRocquemore
2013-01-18--460--93--TUsher
2013-01-18--240--24--JBurris
然后我想在这样的网页上显示这些结果:
Operators|01-10-2013|01-11-2013|01-14-2013|01-16-2013|01-17-2013|01-18-2013
MMahe|96|43|x|x|x|x
RMaloney|101|x|x|x|x|x
JBurris|x|96|x|x|x|24
LTaylor|x|x|48|x|x|x
MRocquemore|x|x|x|8|85|73
TUsher|x|x|x|90|84|93
我的想法是首先我需要将我的日子过滤为唯一值,然后将它们作为列吐出,我已经用这个完成了
$query=mysql_query($sql);
$days = array();
$results.='<div><table border="0"><th>Operator</th>';
while($row=mysql_fetch_array($query)) {
array_push($days,$row['production_date']);
}
$days=array_unique($days);
$column_count=count($days);
$n=0;
//create the columns (days) by looping through unique days
foreach($days as $value) {
$results.='<th>'.$value.'</th>';
}//end foreach
但是现在我看不到在适当的单元格中列出值的方法。您是否有进行此类数据操作的经验,或者可以指出一个很好的例子?