我试图编写一个PHP服务器端来检查用户是否已签入或注意。 PHP文件将查询MySQL数据库以查看userID
是否已签入日期。如果不是,PHP文件将根据userID
插入日期。如果该日期已有记录,则会提示消息"已经签入"。我编写了以下代码但它无法检测记录是否存在(它总是插入一条新记录)。错误的部分是什么?
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
$staffID = $_POST['staffID'];
$date = $_POST['localDate'];
require_once('dbconnect.php');
$sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$staffID' AND Date ='$date'";
$res = mysqli_query($con,$sqlcheck);
if ((mysqli_num_rows($res)) > 0){
echo "You have already checked in";
}else {
echo "Perform Check in $date";
$sql = "INSERT INTO StaffAttendance (StaffID, Date) VALUES ('$staffID','$date')";
mysqli_query($con,$sql);
}
}
mysqli_close($con);
答案 0 :(得分:0)
如果您想查看今天的日期,可以尝试使用CURDATE()函数
$sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$staffID' AND Date = CURDATE() ";
答案 1 :(得分:0)
发布数据和数据库表之间的日期格式可能不同。您可以使用date_format sql函数。它可能有所帮助。以下示例。感谢。
$ sqlcheck =&#34; SELECT Date FROM StaffAttendacne WHERE StaffID =&#39; $ staffID&#39;和DATE_FORMAT(日期,&#39;%Y-%m-%d&#39;)= DATE_FORMAT(&#39; $ date&#39;,&#39;%Y-%m-%d&#39;) &#34 ;;