
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||||||||||
![]() ![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 127 Пользователь №: 28910 На форуме: Карма: -2 ![]() |
Расшифруйте мне,пжл,этот скл запрос:
DELETE удалить из таблицы onlines где vizit меньше... хз=Ъ что дальше?не пойму..а хотелось бы понять:)Что за функция SUBTIME что за NOW() и что это обозначает пять минут: 0:05:0? Спустя 4 минуты, 24 секунды (24.01.2012 - 22:13) inpost написал(а): А что гугл выдал на запрос: "MySQL NOW" - ссылку на мануал, где пишется название функции. Прочитай, что-то неясно? Спустя 1 минута, 27 секунд (24.01.2012 - 22:15) kent666 написал(а): 5 минут назад! Спустя 4 минуты, 2 секунды (24.01.2012 - 22:19) Winston написал(а): mid Мой запрос выдрал? ![]() Этот запрос означает, удалить всех пользователей которые посещали страницу > 5 мин. назад. NOW() - возвращает текущую дату и время SUBTIME() - вычитает из даты и времени переданном в первом аргументе, количество сек/мин/час и т.д. Понятно? Спустя 10 минут, 16 секунд (24.01.2012 - 22:29) mid написал(а): а в поле vizit только время должно быть?и тоже через `:`? Спустя 3 минуты, 27 секунд (24.01.2012 - 22:32) Winston написал(а):
Можно только время, а можно и так 'ГГГГ-ММ-ЧЧ ЧЧ:ММ:СС' - такую запись возвращает ф-я NOW() Спустя 8 минут, 41 секунда (24.01.2012 - 22:41) mid написал(а): смотри.вот так будет правильно:
Спустя 5 минут, 59 секунд (24.01.2012 - 22:47) Winston написал(а): Какой формат поля?
Если datetime То достаточно так написать sql("INSERT INTO `online` (`vizit`, `id_user`) VALUES (NOW(), '" . (int)$id ."')"); /// если нас нет,создадим Спустя 56 секунд (24.01.2012 - 22:48) Winston написал(а): И запрос
Нужно самым первым писать. Спустя 2 минуты, 51 секунда (24.01.2012 - 22:51) mid написал(а): Winston А мой запрос не сработал бы? А почему первым на удаление? Спустя 12 минут, 5 секунд (24.01.2012 - 23:03) Winston написал(а):
Сработал бы.
Упс.. Да здесь можно и не ставить первым Но если например ты будешь выводить список пользователей онлайн или их количество и первым у тебя будет запрос на выборку всех юзеров, то у тебя также выберутся те пользователи которые активничали > 5мин. назад., только потом произойдет удаление и собственно правильное количество онлайн пользователей отобразится только после следующей перезагрузки страницы. Потому в таком случае запрос на удаление должен быть первым. Кстати первый запрос лучше заменить на такой $mid = mysql_fetch_assoc(sql("SELECT `vizit` FROM `online` WHERE `id_user`='" . (int)$id . "' LIMIT 1")); /// сделаем запрос,в таблице онлайн есть мы или нас там нет Добавить лими, т.к. ты же одного юзера вибираешь. Спустя 1 час, 46 минут, 56 секунд (25.01.2012 - 00:50) program90 написал(а): Это значит, что нужно удалить все посещения за все время до 5 минут назад (не включая) (p.s. поставьте, пожалуйста, плюсик) Спустя 9 часов, 56 минут, 29 секунд (25.01.2012 - 10:46) mid написал(а): Я так года два здесь посижу и все знать буду ![]() -------------------- По любому вопросу : programmer-php@mail.ru
|
||||||||||
![]() |
![]() ![]() ![]() |