だから、これは私のお尻を少し蹴っています。簡単な説明は、2 つのテーブル (機器と ehours) があることです。基本的に、機器は静的なままでプロジェクトに転送され、使用状況が毎日追跡されます。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
出力には、その月の適切な日に出力される日付の 2 番目のディメンションが必要です。最終的な表示には、その月のすべての日付が表示されます。たとえば、最初のものは 1 のeid
1 行に出力され、月の適切な日に があります。その後、同じ装備で4のラインがあります。pid
hours
pid
したがって、とにかく、各行を出力するときにウォークスルーできる配列の 2 番目の次元に日付を作成する必要があります。それとも、各日付に関連付けられている時間を把握するための 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
の NULL 値も考慮する必要があります。pid