所以我将用户 time_in 和 time_out 存储在小时表中,当用户登录时,我将日期和时间插入 time_in 字段,并且 time_out 值保持为 000:00:00:00 现在我如何在注销时更新 time_out 字段仅在最后插入的 ID 上更新日期和时间?
无论有多少次注销,它都应该仅在小时表中最后插入的用户 ID 上保持更新时间 time_out,但如果输入新的登录 ID,则它会更改为新的登录 ID,我尝试了类似的操作
$dt = date("年月日 h:i:s");
UPDATE hours SET time_out = '".$dt."' WHERE member_id = '".$_SESSION['MEMBER_ID']."'
小时表中的字段是
hours_id
member_id
member_name
team
time_in
time_out
我不知道如何实现其余的。感谢您的帮助
好的,这是我的 logout.php
<?php
include('config.php');
//Start session
session_start();
if(!isset($_SESSION['MEMBER_ID']) || (trim($_SESSION['MEMBER_ID']) == '')) {
header("location: index.php");
exit();
}
date_default_timezone_set('America/New_York');
$dt = date('Y-m-d h:i:s');
$sql = "UPDATE hours SET time_out = '".$dt."' WHERE member_id IN (SELECT MAX(hours_id) FROM hours WHERE member_id = '".$_SESSION['MEMBER_ID']."'";
mysql_query($sql) or die(mysql_error());
//Unset the variables stored in session
unset($_SESSION['MEMBER_ID']);
unset($_SESSION['LOGIN_NAME']);
unset($_SESSION['PASS']);
unset($_SESSION['TEAM']);
?>
最佳答案
使用该用户条目的最大 ID 进行过滤:
$max = mysql_query("从小时中选择 MAX(hours_id) WHERE member_id = '".$_SESSION['MEMBER_ID']."'");
$row = mysql_fetch_row($max);
那么,您的原始查询将是:
更新小时 SET time_out = '".$dt."' WHERE hours_id = '".$row[0]."'
关于php - 仅在每次注销时将 time_out 字段更新为数据库中最后插入的用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38670354/