我正在使用PHP和MySQL制作出勤网络应用程序。因此,一名员工进入办公室并扫描其ID,然后创建一个带有时间戳字段的行以及将用作其出勤或登录时间的员工ID,假设今天的日期为“ 2019-09-03 09:00:00” 。我观察到有些员工对自己的身份证进行了两次扫描,其理由是要确保扫描仪能够读取条形码并将其写入数据库。我知道我不能告诉他们停止这样做,因为这会导致在表中创建多个条目。
因此,为了避免由于此行为而在表中创建多个条目,我制作了一个脚本来检查员工在这一特定日期是否已经存在。
$today = date("Y-m-d");
$query = "SELECT * FROM `employee_table_in`
WHERE CAST(`time_in` AS DATE) = '$today'
AND `idno` = '$searchString' ";
$result = mysqli_query($link, $query);
$queryResult = mysqli_num_rows($result);
if($queryResult == 0 ){
//login the employee code
} else {
//Already logged in
}
该脚本过去可以工作3天,但是现在每个人都无法登录,因为该脚本显示为“已登录”。
我想在这里发生的只是检查雇员是否已经存在于今天的表中。第二天仍将使用同一表来创建登录名。
任何建议或意见都将不胜感激。预先感谢您的回答。
答案 0 :(得分:-1)
尝试一下:
SELECT * FROM `employee_table_in` WHERE DATE(`time_in`) = CURDATE() AND `idno` = '$searchString';