我正在尝试编写一个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);发布于 2015-11-11 00:55:05
如果您想检查今天的日期,可以尝试使用CURDATE()函数
$sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$staffID' AND Date = CURDATE() ";发布于 2015-11-11 01:10:38
可能过帐数据和数据库表的日期格式不一致。您可以使用date_format sql函数。这可能会有所帮助。下面是一个例子。谢谢。
$sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$staffID‘AND DATE_FORMAT(Date,'%Y-%m-%d') = DATE_FORMAT('$date',’%Y-%m-%d‘)’;
https://stackoverflow.com/questions/33635275
复制相似问题