我正在爲一個辦公室的考勤管理系統做一個項目,其中也包含了假期管理系統。有一個報告顯示頁面顯示員工缺席/現在的報告。現在,如果特定員工在休假日缺席,並且這些休假日根據他的休假申請確定並存儲在申請休假日期的數據庫中,現在我必須顯示in leave
報告而不是absent
報告。我創建了一個leave
表,其中存儲了關於leave
的所有相關信息。這裏是我的leave
表..檢索特定表格的所有行值
lid empname username nod sdate edate reason action empID
=== ======= ======== === ========== =========== ====== ====== =======
1 Maxwell max 1 2013/04/09 2013/04/09 xam Denied 3
2 Sukant suk 1 2013/03/11 2013/03/11 xam Denied 4
3 Sukant suk 1 2013/02/20 2013/02/20 xam Accepted 4
4 Taylor tay 1 2013/05/23 2013/05/23 xam Accepted 1
5 Sukant suk 1 2013/05/23 2013/05/23 xam Accepted 4
的問題是,我不能在同一時間獲取我的leave
表中的所有行。但我必須提取leave
表中的所有行,以檢查所有sdate
和edate
和action
,以在我的報告頁面中顯示報告in leave
或absent
。我寫了下面的代碼,但它只提取第一行或單行leave
表。它將在報告顯示頁面中顯示in leave
(如果接受)報告,僅顯示正在提取的行。
<?php
$leave = mysql_query("SELECT `action` FROM `leave`
where uname =('SELECT `username` FROM `users`
where `empID` =$user')", $dbCon)
or die(mysql_error());
$sql = "SELECT * FROM `office_date`
WHERE year='$year'
AND month = '$month' ORDER BY odate DESC ";
$query = mysql_query($sql, $dbCon);
$leave_row = mysql_fetch_array($leave);
$i = 1;
while ($row2 = mysql_fetch_object($query)){
if(....)
{
//some code here
}
else if ($leave_row[7] == "accepted" && $leave_row[4] == $row2->odate)
{
echo '<tr bgcolor="' . $bgcolor . '">
<td> ' . $i . '</td>
<td> ' . $row2->odate . '</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td><font color="red">In leave</font></td>
</tr>';
}
else {
echo '<tr bgcolor="' . $bgcolor . '">
<td> ' . $i . '</td>
<td> ' . $row2->odate . '</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td><font color="red">Absent</font></td>
</tr>';
}
$i++;
}
?>
SQL查詢是SELECT * FROM
離開where empID = $user
應該是去找我leave
表的只有一行?
我的if條件只檢查一行的信息。我知道爲什麼:查詢$ leave = mysql_query(「SELECT * FROM leave
where empID = $ user」);只提取一行。我如何獲取所有行,以及代替else if
我的代碼的代碼,以便一次獲取或檢查所有行?
@Fabio說的也是正確的... – jerdiggity 2013-04-27 07:47:32