Статус даты завершения события codeigniter

скриншот кодаскриншот БД2 скриншот БД В настоящее время я работаю над функцией, которая отображает статус события. Я сделал столбец в своей базе данных для статуса события.

0 - отменено, 1 - готовится, 2 - выполняется, 3 - выполнено.

Я хочу знать, как изменить значения статуса в базе данных, сравнив дату моего события с текущей датой в codeigniter. Является ли это возможным? если да, то как? Если нет, то есть ли способы сделать эту функцию?

фрагмент моей БД

Вам необходимо применить такие условия, как если (событие происходит) {тогда обновить статус до текущего} иначе если (дата начала события больше текущей даты) {тогда обновить статус до предстоящего} и так далее. Или, если вы хотите автоматически обновлять статус для существующих записей, вам нужно создать задание cron для этого, которое изменит статус события на основе текущей даты.

Rohit Mittal 24.02.2019 07:03

Пожалуйста, предоставьте код, который вы использовали до сих пор, чтобы помочь лучше понять случай.

Tamir Klein 24.02.2019 07:08

это моя модельная функция. Я уже должен был выполнить эту функцию, но она продолжает добавлять в мою базу данных значение 3 в столбце eventStatus. публичная функция dateStatus(){ $dates = $this->input->post('eventDate'); if (now() == $dates){ $this->db->update('activity', array('eventStatus' => } else if (now() < $dates){ $this->db-> update('activity', array('eventStatus' => } else{ $this->db->update('activity', array('eventStatus' } } @TamirKlein

Ean Jhon De Castro 24.02.2019 08:21

@RohitMittal это моя модельная функция при сравнении дат из моей базы данных с функцией now(), но в моей базе данных ничего не меняется. $resulting = $query->result_array(); foreach($resulting as $resultings){ $date = $resultings['eventDate']; if (now() == $date){ $this->db->update('activity', array('eventStatus' => 2)); } else if (now() < $date ){ $this->db->update('activity', array('eventStatus' => 1)); } else if (now() > $date ){ $this->db->update('activity', array('eventStatus' => 3)); } }

Ean Jhon De Castro 24.02.2019 09:02

@EanJhonDeCastro, можете ли вы поделиться полным снимком экрана со своей базой данных? и есть ли в вашей базе данных какие-либо поля от и до, так как вам также нужно получить текущий статус?

Rohit Mittal 24.02.2019 09:19

@RohitMittal скриншоты прикреплены выше. Столбец eventStatus на 1-м снимке экрана является внешним ключом, затем я соединил две таблицы, так что, когда eventStatus равен 1, он будет отображать соответствующее строковое значение. но моя проблема в том, что всякий раз, когда я добавляю событие, оно всегда вставляет значение 3 в поле eventStatus.

Ean Jhon De Castro 24.02.2019 13:17

@EanJhonDeCastro проверьте мой ответ, и вы можете связаться со мной по Skype: rohit.mittal54, если вы все еще сталкиваетесь с какой-либо проблемой. Я буду рад помочь вам :)

Rohit Mittal 24.02.2019 15:17

@RohitMittal я связался с тобой в скайпе. Спасибо.

Ean Jhon De Castro 25.02.2019 02:39
Стоит ли изучать 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
8
134
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны получить текущую дату, используя синтаксис PHP, а не now(), а также вам нужно обновить только одну запись. Проверьте код ниже:

        $resulting = $query->result_array(); 
        $currentDateTime = date('Y-m-d H:i:s');
        foreach($resulting as $resultings){ 
            $date = $resultings['eventDate']; 
            $this->db->where('activityId', $resultings['activityId']);
            if (strtotime($currentDateTime) == strtotime($date)) { 
                 $this->db->update('activity', array('eventStatus' => 1));
            } else if (strtotime($currentDateTime) < strtotime($date)) { 
                 $this->db->update('activity', array('eventStatus' => 3));
            } else if (strtotime($currentDateTime) > strtotime($date)) { 
                 $this->db->update('activity', array('eventStatus' => 1));
            } 
        }

Надеюсь, это поможет вам.

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