這聽起來像你試圖做一個數據透視查詢(切換行和列)。 MySQL不支持這一點,但它可以被模擬。然而,只需獲取需要的數據並用php解析它就容易多了。
這聽起來像(這只是一個猜測),您希望員工成爲第一列,並且所有打孔輸入/輸出都與該員工位於同一行。
這裏有一個裂縫,在你想要做什麼:
$data = select_all_relevant_data_with_mysql();
$employees = array();
while ($row = $data->fetch()) {
$employees[$row['employee']][] = array(
'in' => $row['punchin']
, 'out' => $row['punchout']
);
}
(請注意,這將產生對每個員工進入未定義指數告示你應該處理這個問題,但它會在代碼中有一倍)。
現在,您已經爲每位員工安排了衝突/出數據(希望按順序,MySQL可以使用ORDER BY輕鬆處理)。
現在你做一些鏈接:
foreach ($employees as $name => $punches) {
echo <<<HTML
<tr><td>$name</td>
HTML;
foreach ($punches as $punch) {
echo <<<HTML
<td>$punch[in]</td><td>$punch[out]</td>
HTML;
}
echo '</tr>';
}
我會建議使用模板系統,如PHPTAL對於這種事情。無恥的插件:)
你可能知道你在問什麼 - 但我不認爲你解釋得很好。請提供相關的模式詳細信息,示例記錄以及您希望如何格式化數據的示例。 – symcbean 2010-10-08 15:08:25