首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否仅在每次注销时将time_out字段更新为数据库中最后插入的用户id?

是否仅在每次注销时将time_out字段更新为数据库中最后插入的用户id?
EN

Stack Overflow用户
提问于 2016-07-30 12:32:46
回答 1查看 47关注 0票数 0

因此,我将用户time_in和time_out存储在小时表中,当用户登录时,将日期和时间插入到time_in字段中,而time_out值仍然为000:00:00:00,那么如何在注销时仅在最后插入的id上更新time_out字段?

无论注销多少次,它都应该只在最后一次插入用户id in time_out表时才更新时间小时,但是如果输入了新的登录id,它就会更改为新的登录id。我尝试了下面这样的方法

$dt = date("Y-m-d h:i:s");

代码语言:javascript
复制
UPDATE hours SET time_out = '".$dt."' WHERE member_id = '".$_SESSION['MEMBER_ID']."'

小时数表中的字段包括

代码语言:javascript
复制
hours_id
member_id
member_name
team
time_in
time_out

我不知道如何实现剩下的部分。会很感谢你的帮助

好的,这是我的logout.php

代码语言:javascript
复制
<?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']);   
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-30 12:41:25

使用该用户条目的最大id进行筛选:

$max = mysql_query("SELECT MAX(hours_id) FROM hours WHERE member_id =‘“.$_SESSION’‘MEMBER_ID’.”‘“);

$row = mysql_fetch_row($max);

然后,您的原始查询将是:

更新小时数设置time_out =‘“.$dt”’其中hours_id = '".$row."‘

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38670354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档