1

我正在寻找一些帮助,以获得从尽可能少的数据库查询中获得结果以显示我想要的方式的最佳方式。

我想将我的一个查询结果列用作另一个表的新唯一列并合并类似数据。

例如

我运行这个查询..

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

但是现在我看不到在适当的单元格中列出值的方法。您是否有进行此类数据操作的经验,或者可以指出一个很好的例子?

4

0 回答 0