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