|
0 / 0 / 0
Регистрация: 26.09.2023
Сообщений: 71
|
||||||||||||||||
Как правильно составить запрос PHP?31.03.2024, 19:23. Показов 929. Ответов 16
Здравствуйте!
Такой запрос есть:
timestamp - число unix timestamp (время последней активности на сайте). Запрос отображает список пользователей. Нужно только помечать онлайн или оффлайн, т.е. рядом с каждым логином ставить зелёную или красную метку. Например, если timestamp менее 300 секунд, то делаем онлайн (с помощью переменной $online), если timestamp больше 300 секунд, то ставим оффлайн (с помощью переменной $offline). В HTML уже все настроил, с помощью переменных $online и $offline через if, не могу только правильно PHP-запрос составить. Подскажите пожалуйста)) Можно конечно с помощью 2-х запросов выводить, например:
Спасибо))
0
|
||||||||||||||||
| 31.03.2024, 19:23 | |
|
Ответы с готовыми решениями:
16
Как правильно составить GET запрос Как правильно передать php.exe post запрос? Как правильно составить SQL запрос с использованием команды BETWEEN и реализовать его с PDO PHP подготовленными |
|
Невнимательный
|
||
| 31.03.2024, 21:04 | ||
|
я вот даже не уверен что если есть какие-то индексы, будет их использовать даже если делать ORDER BY 2,1 вместо SELECT username, timestamp , (TIMESTAMPADD(MINUTE,5, timestamp )>=NOW()) new FROM users ORDER BY 3,1;или с (TIMESTAMPDIFF(MINUTE,timestamp ,NOW())>5) old ... ORDER BY 2 DESC,1 ?)... я не спец explain SELECT ... на какой-то попавшейся таблице ничего обнадёживающего не показывает )
1
|
||
|
176 / 74 / 27
Регистрация: 10.11.2023
Сообщений: 199
|
|||||||
| 31.03.2024, 22:42 | |||||||
if ( status == 1) онлайн else оффлайн
1
|
|||||||
|
0 / 0 / 0
Регистрация: 26.09.2023
Сообщений: 71
|
||||||||||||
| 01.04.2024, 19:22 [ТС] | ||||||||||||
В логах сервера все чисто в плане ошибок PHP. Подозреваю, что проблема именно в проверке и вместо:
0
|
||||||||||||
|
5125 / 1084 / 160
Регистрация: 16.01.2023
Сообщений: 2,667
|
|||||||||||
| 01.04.2024, 20:04 | |||||||||||
|
Такая формулировка в целом неправильная. Вы просто слово status сравниваете с числом 1.
2
|
|||||||||||
|
Невнимательный
|
|||||||||
| 01.04.2024, 20:26 | |||||||||
(NOW(), timestamp )Добавлено через 6 минут
2
|
|||||||||
|
176 / 74 / 27
Регистрация: 10.11.2023
Сообщений: 199
|
|||
| 01.04.2024, 20:33 | |||
|
От конечного нужно отнять начальное время. end_time - start_time
2
|
|||
|
Невнимательный
|
|
| 01.04.2024, 21:02 | |
|
ZeroKara, главное мысль подать,) как вариант
кстати, then 0 else 1 , как для возможностей норм, типа можно строку вернуть 'online'/'offline' ... и есть ещё IF(cond? yes,now) а так x>y AS z оно и так z=1/0 .)upd:// правильно создавать всё-таки тема,) а не точно копировать
0
|
|
|
0 / 0 / 0
Регистрация: 26.09.2023
Сообщений: 71
|
|||||||||||||||||
| 02.04.2024, 00:42 [ТС] | |||||||||||||||||
|
Если status было бы поле в БД, то я бы сделал так:
А так то да, работает если cделать например:
Осталось разобраться как из sql-запроса:
0
|
|||||||||||||||||
|
Невнимательный
|
|||||||
| 02.04.2024, 09:06 | |||||||
Сообщение было отмечено Dennz как решение
Решениенапример
как вариант можно вообще словами получать IF(TIMESTAMPDIFF(SECOND, timestamp, NOW())<=300, 'online','offline') status +---------+или кусками разметки с тегами ))... но памяти соответственно чуть больше чем 1/0
1
|
|||||||
|
0 / 0 / 0
Регистрация: 26.09.2023
Сообщений: 71
|
||||||||||||
| 03.04.2024, 16:09 [ТС] | ||||||||||||
|
Например, после sql-запроса у меня идет следующий код:
0
|
||||||||||||
|
Надуваю лягушек
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
|
|||||||||||||||||||||
| 03.04.2024, 16:23 | |||||||||||||||||||||
|
Простите, у меня вопрос.
А если целочисленное - intval Что 3-им равно мы доказываем? (существование предмета объекта - нелепо как-то, когда цифровая варияция в условии.)
0
|
|||||||||||||||||||||
|
Невнимательный
|
|||||||
| 03.04.2024, 16:57 | |||||||
|
это $mails = $rs->getrows();, какое-то нестандартное...но видимо в итерациях получаете объекты $rsc, если такой синтаксиснапишите там echo '<pre>', var_export([$rsc, $rsc->fields], 1); exit;чтобы попытаться увидеть первый из получаемых рядов И да со строкой '0' в условиях тоже должно работать
0
|
|||||||
|
0 / 0 / 0
Регистрация: 26.09.2023
Сообщений: 71
|
||||||||||||||||||||||||||||||||
| 03.04.2024, 17:50 [ТС] | ||||||||||||||||||||||||||||||||
|
Полный код выглядит так:
Чтобы вывести username и timestamp в этом списке, в HTML пишу:
Сейчас использовал такую конструкцию в sql-запросе:
Чувствую что разгадка где-то рядом))
0
|
||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 26.09.2023
Сообщений: 71
|
|||||||||||
| 03.04.2024, 20:27 [ТС] | |||||||||||
|
ft4l, огромное спасибо за помощь! Получилось))
В итоге сделал так:
Но когда я создавал поля для пользователей, то на всякий случай создал еще "дублирующее" поле datetime, куда записываются данные в формате DATETIME. Вот это поле сейчас и пригодилось)) А может быть все таки есть функция, которая считает именно значения в UNIX_TIMESTAMP? Просто в основном я пользуюсь именно UNIX_TIMESTAMP, а DATETIME создавал "на всякий случай".
0
|
|||||||||||
|
Невнимательный
|
||
| 03.04.2024, 20:36 | ||
mysql> select UNIX_TIMESTAMP() - UNIX_TIMESTAMP('2024-04-03 21:30:20') > 300;Вобщем наверное IF (UNIX_TIMESTAMP() - s.datetime < 300, 'Online', 'Offline') status
0
|
||
| 03.04.2024, 20:36 | |
|
Помогаю со студенческими работами здесь
17
Как правильно составить такой запрос? Как правильно составить запрос с LIMIT?
Подскажите как правильно составить sql запрос
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|