我是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
答案 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)"
);