Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет. Есть задача: в таблице clients есть поле (int) number (не автоинкримент). При добавлении записи в таблицу clients значение поля number должно увеличиться на 1, а если текущая дата 10 июля, то поле должно начать отсчета снова с начала, то есть с 1. И каждый год 10 июля обнуляться.
Собственной сейчас в коде есть: $number в которой хранится последнее значение поля number из таблицы, если оно пустое то $nubmer = 0. При добавлении записи идет условие $nubmber + 1; Все добавляется хорошо. Потом делаю условие на проверку даты
$date = date('d-m');
if($date = '10-07) {
$number = 0; // скидываю счетчик
}
Проблема в том что если поставить 10 июля и проверить код, то счетчик сбрасывается постоянно и всегда в поле number пишется значение 1. И еще $number изначально хранит последнее значение поля number, но к примеру если 10 июля не было ни одной записи в таблицу clients, то условие на проверку даты так и не выполнится.
Собственно как сделать вход в условие только 1 раз и учесть момент если 10 июля не было записей в бд, а 11 были
имеем 2 условия которые должны выполняться одновременно (оператор AND) для начала нового отсчета:
- прошел год
- нового номера еще нет
Прошел ли год можно узнать по разнице между текущей датой и датой начала отсчета.
Нового номера еще нет по условию $number > 0;
После обнуления номера не забудьте обновить дату начала отсчета до 10.07.текущего года.
Не в сети
Страницы 1