如何使用MySQL和PHP在每次登录时将用户的注销时间存储在数据库中?

时间:2019-04-11 07:12:58

标签: php mysql

我是PHP和MySQL的新手。我的项目是关于学校管理系统的。在这个项目中,我有3个用户。每当他们登录时,每次登录时间都会正确存储。当用户注销时,将存储注销时间。问题是,该特定用户的上次注销时间也被更新为以前的注销时间。预先谢谢

我的代码是:

login.php

skew

退出。 php

$sql = $conn->query("Insert into userlog (username) values ('$username')");

我希望,

<?php

include("php/dbconnect.php");
ob_start();


mysqli_query($conn,"UPDATE userlog SET logoutTime = NOW()  WHERE username = '$_SESSION[username]'   ");


unset($_SESSION['name']);

unset($_SESSION['uid']);

unset($_SESSION['username']);

echo '<script type="text/javascript">window.location="login.php"; </script>';


?>

但是我的输出如下所示,

id username login logout
1    1111   12:10  12:20
2    1111   12:40  12:50

1 个答案:

答案 0 :(得分:2)

您需要确保仅更新最新的登录时间,因此请在您的WHERE子句中添加一个条件:

mysqli_query($conn,"UPDATE userlog 
                    SET logoutTime = NOW()  
                    WHERE username = '$_SESSION[username]'
                      AND loginTime = (SELECT maxLoginTime 
                                       FROM (SELECT MAX(loginTime) AS maxLoginTime
                                             FROM userlog 
                                             WHERE username = '$_SESSION[username]') u)"
            );

Demo on dbfiddle