Обновить таблицу и зафиксировать время выхода из системы при выходе пользователя

Мне было поручено сделать простую страницу регистрации / выхода для добровольцев. Волонтер выбирает имя из раскрывающегося списка, щелкает «Отправить», и информация отправляется в 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>

Какой проблемы с запросом ???

AbraCadaver 19.07.2018 17:27

Вы можете заменить $check_out_date = date("Y-m-d H:i:s"); только на mysql NOW(): sql.sh/fonctions/now

Mickaël Leger 19.07.2018 17:27

Вы либо UPDATE существующую строку с помощью предложения WHERE, либо INSERT новую строку.

AbraCadaver 19.07.2018 17:28

моя основная проблема связана с: "$ update_checkout = mysqli_query (" UPDATE check_in_out SET check_out_date = $ check_out_date, user_id = $ user_id "); Я хочу зафиксировать время выхода соответствующего пользователя, я застрял в логике. Спасибо!

excelsiorone 19.07.2018 17:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
65
1

Ответы 1

Вы можете попробовать это обновить:

$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 в свой код: проверьте документация и посмотрите, почему здесь

Другие вопросы по теме