Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 2
Регистрация: 07.05.2013
Сообщений: 70

Показывать только активные обьявления

14.12.2018, 13:52. Показов 535. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Играюсь с доской обьявлений, сделал на Laravel, но не в этом суть.
При подаче обьявления, юзер выбирает как долго его обьявление будет активно (1 день / 1 неделя и тд). Далее это все заноситься в базу данных в фомате valid_to = DD-MM-YYYY, active = 1;

Показываю я обьявления где active = 1;

Теперь вопрос, какая логика должна быть, чтобы автоматом проверяло обьявления и делало их неактивными, если их срок действия вышел. Соответственно, active = 0.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2018, 13:52
Ответы с готовыми решениями:

Как вывести только не активные элементы инфоблока
Здравствуйте. Подскажите как можно вывести только не активные элементы инфоблока. Есть 2 страницы с компонентом bitrix:news. На одной...

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

OpenDialog, показывать только текстовые файлы
как сделать так, чтобы когда я открываю папку, используя opendialogs, у меня в ней показывались только текстовые файлы?

10
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
14.12.2018, 13:54
PHP
1
2
3
4
5
6
do {
if($active == 0) {
}
 
}
while();
0
2 / 2 / 2
Регистрация: 07.05.2013
Сообщений: 70
14.12.2018, 14:02  [ТС]
Вы наверное не поняли.
Как сделать так, чтобы что-то проверяло, когда заканчиваются обьявления, тоесть последняя ли секунда / минута их . Если да, то сделать запрос в базу и выключить их. Что-то в этом роде.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
14.12.2018, 14:21
Получаем дату из базы,
и сравниваем с текущей

Добавлено через 2 минуты
или сразу получаем нужное время
http://www.internet-technologi... mysql.html
и сравниваем
0
2 / 2 / 2
Регистрация: 07.05.2013
Сообщений: 70
14.12.2018, 14:23  [ТС]
Тоесть такой вариант как, при выводе всех обявлений, сравниваем их конечные даты с сегодняшней. Если их публикация заканчивается сегодня, то например, за 10 минут до конечной даты, айдишники данных обьявлений складываем в массив. Затем делаем экстра запрос в базу и выключаем все обьявления с этими айдишниками?
Тем самым, больше этих обьявлений никто не увидет, так как они выключены.
Это единственный вариант, который мне приходит на ум.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
14.12.2018, 14:32
проверяем на два условие 1. на актив 0 , 2. на нужный запрос к n колличеством времени

Можно к примеру так

SQL
1
2
3
SELECT * FROM `table`WHERE
 
date<=DATE_ADD(CURDATE(),INTERVAL 1 DAY);
Добавлено через 57 секунд
Сurdate - текущая дата
Interval 1 day - меньше одного дня

Добавлено через 22 секунды
http://code.mu/sql/date_add.html

Добавлено через 1 минуту
а, нет на актив мы не проверяем актив по логике у вас 1 остается- мы просто смотрим окончание даты и показываем пользователю, а потом делаем актив 0 - что значит обьявление уже кончилось

Добавлено через 1 минуту
http://code.mu/sql/interval.html
0
2 / 2 / 2
Регистрация: 07.05.2013
Сообщений: 70
14.12.2018, 15:18  [ТС]
Хорошо, но где тогда запрос, который делает все обьявления active = 0 ?
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
14.12.2018, 22:17
Конечно, в уме, это тяжело расписывать но попробую
1)усер подал объявление, заносим дату в базу, далее такие варианты
1.1)когда юсер заходит на свою страничку
1.1.1.)Проверяем равен ли active==0, если равен, пишем ему, что пора платить
Else
1.1.2)Проверяем, если текущая дата больше даты в базе, делаем update и ставим active 0, и потом срабатывает пункт 1.1.1
1.1.3.)если меньше, запросом, который я скинул выше, проверяем скока осталось жить его обьяве
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
15.12.2018, 13:36
Цитата Сообщение от andyyy Посмотреть сообщение
когда юсер заходит на свою страничку
Я бы так не делал. Не факт что он вовремя зайдет. Лучше по крону или scheduler из БД.
А еще можно не хранить active в БД, а всегда вычислять... тут от нагрузки конечно надо плясать.
1
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
16.12.2018, 13:21
Ну, согласен, не подумал
Еще можно со стороны админа сделать кнопку очистить и делать в active в 0 к просроченных обьявах, при условии что админ будет как крон
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
16.12.2018, 14:57
Не нужно ничего мудрить, просто выводить объявления, у которых valid_to больше текущего времени. А active будет служить для управления в админке по чекбоксу.

SQL
1
SELECT * FROM `ad` WHERE `active` = 1 AND `valid_to` > NOW()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2018, 14:57
Помогаю со студенческими работами здесь

Показывать кнопки только авторизованному пользователю
1) На форме расположенны две кнопки &quot;добавить&quot;, &quot;удалить&quot;. Их значение visible = false. Когда происходит авторизация, при нажатие на...

Показывать только созданные пользователем документы
Имеется представление &quot;Мои заявки&quot;. В нем должны отображаться только документы созданные текущим пользователем. Я сделал так: создал...

Показывать компонент только опред. группе
Добрый вечер ув. пользователи ! Подскажите пожалуйста, как только опред. группе пользователей показывать компонент в админ. части ? Что...

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

Как показывать определенный div только на Android
Я бы хотел показывать div на android, но я в этом нуб. Помогите! Пример как нужно:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru