[英]multi dimensional array from a joined mysql query
所以这有点让我失望了。 一个小小的解释是,我有2张桌子-设备和小时数。 本质上,设备保持静态并转移到项目中,然后每天对其使用情况进行跟踪。 equipment.eid
是equipment.eid
的唯一标识符,然后在每个ehours条目中使用。
以下是我用来创建输出的查询。 我得到的输出已正确排序,但无法弄清楚如何正确输出。
SELECT e.cid, e.eid, h.pid, h.hdate, e.eqid, e.name, e.make, e.model, h.hours, e.uid
FROM equipment e
LEFT JOIN ehours h on h.eid = e.eid
AND MONTH(h.hdate) = $data[month] AND YEAR(h.hdate) = $data[year]
ORDER BY cid ASC, eid ASC, pid ASC, hdate ASC
我遇到的问题是,在给定的月份中,一件设备可能位于2个单独的项目中。 查询显示以下内容...
cid | eid | pid | hdate | eqid | name | make | model | hours | uid
4 | 55 | 1 | 2012-11-01 | E8 | Forklift | Clark CGP25 | | 5 | 1
4 | 55 | 1 | 2012-11-07 | E8 | Forklift | Clark CGP25 | | 5 | 1
4 | 55 | 1 | 2012-11-10 | E8 | Forklift | Clark CGP25 | | 2 | 1
4 | 55 | 1 | 2012-11-13 | E8 | Forklift | Clark CGP25 | | 3 | 1
4 | 55 | 4 | 2012-11-13 | E8 | Forklift | Clark CGP25 | | 2 | 1
输出需要具有日期的第二维,该日期将在该月的适当日期输出。 最终显示将显示该月的所有日期。 例如,第一个eid
将在pid
值为1的一行上输出,并具有该月的适当日期的hours
。 然后,它将与同一台设备有一条生产线,但pid
为4。
因此,无论如何,我都需要以某种方式将日期创建到数组的第二维中,以便在输出每一行时可以遍历。 还是第3维来捕捉与每个日期相关的小时数? 我已经看过几种php方法来尝试这种方法,但到目前为止仍未成功。 任何帮助是极大的赞赏。 哇-这变成了小说。
编辑:
以下是输出内容:
pid | eqid | name | make | 11-01 | 11-02 | ... | 11-07 | ... | 11-10 | ... | 11-13
1 | E8 | Forklift | Clark CGP25 | 5 | 0 | ... | 5 | ... | 2 | ... | 3
4 | E8 | Forklift | Clark CGP25 | 0 | 0 | ... | 0 | ... | 0 | ... | 2
还必须考虑pid
的NULL值
假设我了解您的要求,那么可以为每个PID创建一个关联数组,其中包含每个日期行的内容如下:
while ($row = mysql_fetch_assoc($res))
{
$output[$row['pid']][] = $row;
}
那么你需要遍历新数组
foreach ($output as $job)
{
foreach ($job as $line)
{
// do some formatiign here
print_r($line)
}
echo "<hr>"; // this is the line or whatever seperator you need
}
希望这可以帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.