Я пытаюсь написать сервер 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);
Если вы хотите проверить дату на сегодняшний день, вы можете попробовать использовать функцию CURDATE()
$sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$staffID' AND Date = CURDATE() ";
Возможно, формат даты не совпадает между отправкой данных и таблицей базы данных. Вы можете использовать функцию date_format sql. Это может помочь. Пример ниже. Благодарю.
$ sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$ staffID' И DATE_FORMAT (Date, '% Y-% m-% d') = DATE_FORMAT ('$ date', '% Y-% m-% d ")";