php проверяет, зарегистрировался ли пользователь или нет

1

Я пытаюсь написать сервер 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
    какой формат $ date и Date в базе данных? возможно, что дата не совпадает точно, как, например, если в базе данных Date есть отметка времени, а в $ date - нет. Также имейте в виду, что ваш код уязвим для внедрения SQL .
  • 0
    Я конвертирую дату в строковый формат и использую дату из моего приложения для Android для отправки на сервер
Показать ещё 6 комментариев
Теги:

2 ответа

0

Если вы хотите проверить дату на сегодняшний день, вы можете попробовать использовать функцию CURDATE()

$sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$staffID' AND Date = CURDATE() ";
  • 0
    Спасибо за ваш ответ. Можешь объяснить дальше? Я хочу проверить, была ли запись на эту дату уже вставлена в базу данных
  • 0
    @ LêKhánhVinh Это будет проверять только с текущей датой ....
Показать ещё 7 комментариев
0

Возможно, формат даты не совпадает между отправкой данных и таблицей базы данных. Вы можете использовать функцию date_format sql. Это может помочь. Пример ниже. Благодарю.

$ sqlcheck = "SELECT Date FROM StaffAttendacne WHERE StaffID = '$ staffID' И DATE_FORMAT (Date, '% Y-% m-% d') = DATE_FORMAT ('$ date', '% Y-% m-% d ")";

  • 0
    спасибо, но когда изменить на ваш sql. это все еще вставляют каждый раз. В каком типе данных должен быть SQL?
  • 0
    Вы можете использовать дату или дату и время. до u.sql обычно хранят дату в формате 'Ymd'. Благодарю.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню