【发布时间】:2016-07-30 04:32:45
【问题描述】:
所以我将用户 time_in 和 time_out 存储在小时表中,当用户登录时,我将日期和时间插入 time_in 字段并且 time_out 值仍然是 000:00:00:00 现在我如何在注销时更新 time_out 字段仅在最后插入的 id 上更新日期和时间?
无论有多少次注销,它都应该仅在小时表中最后插入的用户 ID 上更新 time_out,但是如果输入了新的登录 ID,那么它会更改为新的登录 ID,我尝试过类似这样的操作
$dt = date("Y-m-d 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(id)。
SELECT max(id) as LastId FROM hours WHERE member_id = :member_id顺便说一下,不要假设会话变量可以安全地注入到您的 sql 中。