【发布时间】:2012-02-06 02:16:36
【问题描述】:
我目前有 2 张桌子。一份是员工打卡时间,一份是他们的日程安排。我想要完成的是每天运行一次,以查看谁准时、早点、迟到或缺席。感谢 fabianhjr 在我的上一篇文章中,我能够找到像这样早早或准时使用 MySQL 的人
$query = "SELECT cms.date, cms.userID, cms.login, oc_schedule.start_time, oc_schedule.userID
FROM cms
INNER JOIN oc_schedule ON oc_schedule.start_time >= cms.login AND oc_schedule.userID = cms.userID";
现在要查找迟到或缺勤的人,我有两个表 CMS 和 oc_schedule。 CMS 是跟踪人们何时登录的表(它是一个预先存在的系统)和我刚刚制作的 oc_schedule 并将所有时间表输入到一个表中,其中行 userID、周日至周六以 Y 或 N 作为它们的值,开始时间和结束时间。
所以我现在需要做的是检查 CMS 的日期,找到当天的名称,为其分配一个 Y 值,检查 oc_schedule 为拥有 Y 值的那一天的每个人,然后检查安排 start_time 以及他们是否登录,如果是,什么时间。把准时或早到的人移到另一张桌子上,把迟到或缺勤的人移到 late_absent 桌子上。
到目前为止,这是我所获得的迟到和缺席名单。现在它所做的只是找到为空或大于计划时间的登录,但如果不比较日期,它就无法真正工作。我现在正在呼应这些表格,只是为了看看它可以在无需发布到数据库的情况下工作。
<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("sacc") or die(mysql_error());
$query = "SELECT cms.date, cms.userID, cms.login, oc_schedule.start_time, oc_schedule.userID, oc_schedule.sunday, oc_schedule.monday, oc_schedule.tuesday, oc_schedule.wednesday, oc_schedule.thursday, oc_schedule.friday, oc_schedule.saturday
FROM cms
RIGHT OUTER JOIN oc_schedule
ON oc_schedule.userID = cms.userID AND oc_schedule.start_time < cms.login";
$result = mysql_query($query) or die(mysql_error());
echo "<table cellpadding='5' border='0' style='border: 1px solid black;border-collapse:collapse'>
<tr>
<th style='border: 1px solid black;'>Date</th>
<th style='border: 1px solid black;'>CID/WIN</th>
<th style='border: 1px solid black;'>Scheduled Login</th>
<th style='border: 1px solid black;'>Late Login Time</th>
</tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr style='text-align: center;'>";
echo "<td style='border: 1px solid black;'>" . $row['date'] . "</td>";
echo "<td style='border: 1px solid black;'>" . $row['userID'] . "</td>";
echo "<td style='border: 1px solid black;'>" . $row['start_time'] . "</td>";
echo "<td style='border: 1px solid black;'>" . $row['login'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
我觉得我的约会问题越来越近了,我仍然无法让它工作......有什么建议吗?
$query2 = "SELECT DAYNAME(CURDATE() - INTERVAL 1 DAY)";