如何每天仅在表格中保存一次日期

时间:2019-10-11 20:07:03

标签: php mysql

我有一个登录表单,其数据存储在表用户中。我还有另一个表,用于存储登录日期和时间。

表用户(ID,用户名,密码)

表user_login(id,user_id,login_date)

我尝试的代码:

$db = mysqli_connect('localhost', 'root', '', 'registration');

if (count($errors) == 0) {
    $password = md5($password);
    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $results = mysqli_query($db, $query);
    if (mysqli_num_rows($results) == 1) {
        $_SESSION['username'] = $username;
        $name = $_SESSION['username'];
          $row=mysqli_fetch_array($results);
    $user_id= $row['id'];

    $date = date('Y-m-d');
    $checkdate= "SELECT id from user_login WHERE user_id='$user_id' AND DATE(login_date)='$date'";
    $check=mysqli_query($db, $checkdate)or die(mysqli_error($db));
    if(mysqli_num_rows($check)==1){
    $updatedate="UPDATE user_login set date= $date where id=$user_id";
    mysqli_query($db,$updatedate)or die(mysqli_error($db));
    }
    else{
    $insertdate="INSERT INTO user_login (user_id, login_date) values($user_id, $date)";
    mysqli_query($db,$insertdate)or die(mysqli_error($db));
    }
 // $_SESSION['success'] = "You are now logged in";
    header('location: profile.php');
    }else {
    array_push($errors, "Wrong username/password combination");
     }
    }
    }

以上代码仅在我每次登录时添加日期和时间。但是我只想每天保存一次。

1 个答案:

答案 0 :(得分:0)

这是一个主意。

您可以将日期保存到user_login表中,然后可以进行检查和比较

在插入用户登录表之前,请先进行检查。 从$ results获取用户的ID。 并检查表: $ date = date('Y-m-d');

从user_login中选择ID,其中user_id = $ user_id和Date(login_date)= $ date

如果有记录,只是更新日期 $ cur_date = date('Y-m-d'); 更新user_login设置日期= $ cur_date,其中id = $ user_login_id 否则插入一个 INSERT INTO user_login(user_id,login_date)值($ user_id,$ cur_date);

希望您能理解逻辑。 我希望您正在使用mysqli_escape_string来防止sql注入。

请勿将md5用于密码加密,而应使用bcrypt或其他安全加密功能。

这是您代码的有效版本。不要在生产中使用它。

$db = mysqli_connect('localhost', 'root', '', 'registration');


if (count($errors) == 0) {
    $password = md5($password);
    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $results = mysqli_query($db, $query);
    if (mysqli_num_rows($results) == 1) {
        $_SESSION['username'] = $username;
        $name = $_SESSION['username'];
        $row = mysqli_fetch_array($results);
        $user_id = $row['id'];

        $date = date('Y-m-d');
        $datetime = date('Y-m-d H:i:s');

        $checkdate = "SELECT id from user_login WHERE user_id='$user_id' AND DATE(login_date)='$date'";
        $check = mysqli_query($db, $checkdate) or die(mysqli_error($db));

        if (mysqli_num_rows($check) == 1) {
            $updatedate = "UPDATE user_login set login_date='$datetime' where user_id=$user_id and DATE(login_date)='$date'" ;
            mysqli_query($db, $updatedate) or die(mysqli_error($db));
        } else {
            $insertdate = "INSERT INTO user_login (user_id, login_date) values($user_id, '$datetime')";
            mysqli_query($db, $insertdate) or die(mysqli_error($db));
        }
        // $_SESSION['success'] = "You are now logged in";
        header('location: profile.php');
        die;
    }else {
        array_push($errors, "Wrong username/password combination");
    }

}

这只是演示。