更新表并在用户注销时捕获注销时间

时间:2018-07-19 15:19:55

标签: php sql

我的任务是制作一个简单的志愿者检入/检出页面。志愿者从下拉列表中选择名称,然后单击提交,然后将信息提交到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>

1 个答案:

答案 0 :(得分:0)

您可以尝试进行更新:

$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():请参见documentation

2 /您需要使用WHERE user_id=$user_id,以便知道要更新的行

3 /您应该使用一些prepare语句,而不要在代码中添加直接的$_POST:检查documentation并查看为什么here