首页 > 解决方案 > 更新表并捕获用户注销时的注销时间

问题描述

我的任务是制作一个简单的志愿者登记/退房页面。志愿者从下拉列表中选择名称单击提交并将信息提交到mysql db,结帐过程相同,您从下拉列表中选择名称并提交,它应该使用注销时间更新表。我在查询时遇到问题,任何帮助或指导将不胜感激。谢谢你。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>

<body>

<form method="post" action="">

    <label >Please Select Username</label>

    <select name="userid">

    <?php
    require('db.php'); 

    $sql = mysqli_query($con, "SELECT * 
                               FROM users 
                               INNER JOIN check_in_out ON users.id = check_in_out.user_id ");
    while ($row = $sql->fetch_assoc()){
        echo "<option value=". $row['id'] .">" . 
                  $row['last_name'] . ","  . $row['first_name'] . 
             "</option>";
    }
    ?>

    </select>

    <button type="submit" name="submit" >Checkout</button>

    <?php
    require('db.php'); 
    if(isset($_POST["submit"]))
    {

        $user_id = $_POST['userid'];
        $check_out_date = date("Y-m-d H:i:s");
        $update_checkout=mysqli_query("UPDATE check_in_out 
                                       SET check_out_date= $check_out_date, 
                                           user_id=$user_id "); 
        session_destroy();
        header("Location: login.php");
    }
    ?>
</form> 
</body>
</html>

标签: phpsql

解决方案


你可以试试这个来更新:

$user_id = $_POST['userid']; 
$update_checkout=mysqli_query("UPDATE check_in_out 
                               SET check_out_date= NOW() 
                               WHERE user_id=$user_id"); 

1/ 我删除date()部分并使用 mysql NOW():见文档

2/ 你需要使用WHERE user_id=$user_id所以你知道你将更新哪一行

3/你应该使用一些准备语句而不是直接$_POST在你的代码中添加:检查文档,看看为什么在这里


推荐阅读