Мне было поручено сделать простую страницу регистрации / выхода для добровольцев. Волонтер выбирает имя из раскрывающегося списка, щелкает «Отправить», и информация отправляется в 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>
Вы можете заменить $check_out_date = date("Y-m-d H:i:s"); только на mysql NOW(): sql.sh/fonctions/now
Вы либо UPDATE существующую строку с помощью предложения WHERE, либо INSERT новую строку.
моя основная проблема связана с: "$ update_checkout = mysqli_query (" UPDATE check_in_out SET check_out_date = $ check_out_date, user_id = $ user_id "); Я хочу зафиксировать время выхода соответствующего пользователя, я застрял в логике. Спасибо!






Вы можете попробовать это обновить:
$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 в свой код: проверьте документация и посмотрите, почему здесь
Какой проблемы с запросом ???