В голову приходит только писать в таблицу скажем ип и время при каждом обновлении страницы пользователем и выводить количество через select где время будет равно текущее время минус скажем 15 минут (Если 15 минут бездействовал-нафиг с пляжу).
Не нравится мне конечно, что мусора много в таблице будет...получается каждый хит будет писать...или проще нельзя ?
Спустя 16 минут, 31 секунда (15.08.2009 - 13:30) Gradus написал(а):
Так в основном и делают

Спустя 3 минуты, 55 секунд (15.08.2009 - 13:33) Krevedko написал(а):
Допустим 5000 просмотров за день (не хосты, а хиты)...все это пишется.
Через полгода база не будет лагать ? )
Через полгода база не будет лагать ? )
Спустя 8 минут, 53 секунды (15.08.2009 - 13:42) Gradus написал(а):
Спустя 15 минут, 59 секунд (15.08.2009 - 13:58) Krevedko написал(а):
через кукисы...хм..кукисы могут быть отключены.
Я вот че придумал. Писать в таблицу только уникальные айпи, а если айпи уже есть, то обновлять просто там время и в колонку хитов этого айпи добавлять +1.
Я вот че придумал. Писать в таблицу только уникальные айпи, а если айпи уже есть, то обновлять просто там время и в колонку хитов этого айпи добавлять +1.
Спустя 19 минут, 21 секунда (15.08.2009 - 14:18) Krevedko написал(а):
сделал пока примерно как-то так. вроде работает.
PHP |
$ip = $_SERVER['REMOTE_ADDR']; |
Спустя 9 минут, 24 секунды (15.08.2009 - 14:27) Gradus написал(а):
Ну я бы посоветовал получше определять ip

Спустя 6 минут, 57 секунд (15.08.2009 - 14:34) Krevedko написал(а):
эт я для локалки пока тестю
Спустя 2 часа, 8 минут, 19 секунд (15.08.2009 - 16:42) glock18 написал(а):
Цитата (Krevedko @ 15.08.2009 - 11:18) | ||
сделал пока примерно как-то так. вроде работает.
|
попробуй вместо select-insert/update использовать запрос insert .. update on duplicate. Один запрос вместо трех.

Спустя 2 часа, 10 минут, 39 секунд (15.08.2009 - 18:53) Krevedko написал(а):
ага. спс !
еще такой вопрос...
как ввести в переменную время минус 15 минут ?
пробовал как-то типа
$time = date("H:i-15:s");
$time = date("H:i:s") -15 ;
-не понимает
еще такой вопрос...
как ввести в переменную время минус 15 минут ?
пробовал как-то типа
$time = date("H:i-15:s");
$time = date("H:i:s") -15 ;
-не понимает
Спустя 58 минут, 11 секунд (15.08.2009 - 19:51) Gradus написал(а):
Krevedko,
$time = date("His")-1500; забей на разделитель
$time = date("His")-1500; забей на разделитель

Спустя 2 минуты (15.08.2009 - 19:53) Krevedko написал(а):
у меня в базе разделитель. я ж сравнивать потом буду с данными в базе
Спустя 2 минуты, 24 секунды (15.08.2009 - 19:56) Krevedko написал(а):
как сделать, чтобы было с разделителями ?
Спустя 8 минут, 58 секунд (15.08.2009 - 20:05) Raito-kun написал(а):
PHP |
$time=date("H:i:s", time()-900); |
пробуй

Спустя 8 минут, 5 секунд (15.08.2009 - 20:13) Krevedko написал(а):
ух ты, работает.
спасибо тебе, о мудрейший !!!
спасибо тебе, о мудрейший !!!
Спустя 1 час, 4 минуты, 28 секунд (15.08.2009 - 21:17) Nikitian написал(а):
Очень полезная функция для работы с датами 

PHP |
strtotime('-15 minute'); |
Спустя 25 минут, 5 секунд (15.08.2009 - 21:42) Krevedko написал(а):
спасибо, мне уже очень помог Василий (долгих лет ему)
...WHERE TIMESTAMPDIFF(MINUTE, date, NOW()) <= 15"
...WHERE TIMESTAMPDIFF(MINUTE, date, NOW()) <= 15"
Спустя 2 часа, 30 минут, 4 секунды (16.08.2009 - 00:12) DeeKeiD написал(а):
хм помойму проще делать сессиями
Спустя 11 часов, 58 минут, 30 секунд (16.08.2009 - 12:11) Krevedko написал(а):
Цитата (glock18 @ 15.08.2009 - 13:42) |
попробуй вместо select-insert/update использовать запрос insert .. update on duplicate. Один запрос вместо трех. ![]() |
SQL |
INSERT INTO `count_users` (`ip`,`login`,`date`,`hits`,`referer`) VALUES ('$ip', 'null', NOW(), 1, '$referer') UPDATE ON DUPLICATE SET hits = hits + 1 |
что-то матюгается он у меня на вторую половину (((
как правильно написать ?
Рылся рылся в мануале, тольком не нашел ничего
Спустя 14 минут, 43 секунды (16.08.2009 - 12:25) glock18 написал(а):
как-то ты невнимательно рылся:
Цитата |
ON DUPLICATE SET |
мануал:
Цитата |
ON DUPLICATE KEY UPDATE ...; |
Спустя 44 секунды (16.08.2009 - 12:26) Krevedko написал(а):
может мануал другой. ты где смотрел ?
Спустя 5 минут, 4 секунды (16.08.2009 - 12:31) Gradus написал(а):
Я чёто первый раз такое вижу
"UPDATE ON DUPLICATE SET" ты сам то где такое откапал ?)
"UPDATE ON DUPLICATE SET" ты сам то где такое откапал ?)
Спустя 4 минуты, 50 секунд (16.08.2009 - 12:36) glock18 написал(а):
хоспати. было бы место в подписи, я бы туда уже ссылки засунул все )))
пользуйтесь первоисточниками:
взял с dev.mysql.com. дупликаты определяются по уникальным ключам. с этим внимательно
пользуйтесь первоисточниками:
взял с dev.mysql.com. дупликаты определяются по уникальным ключам. с этим внимательно
Спустя 3 минуты, 52 секунды (16.08.2009 - 12:40) Krevedko написал(а):
Gradus -ты не поверишь, но оно еще и работает.
Просто я синтаксис неправильно написал...спасибо Василию-помог. Короче правильно так

Просто я синтаксис неправильно написал...спасибо Василию-помог. Короче правильно так
SQL |
$result = mysql_query ("INSERT INTO `count_users` (`ip`,`login`,`date`,`hits`,`referer`) VALUES ('$ip', 'null', NOW(), 1, '$referer') ON DUPLICATE KEY UPDATE hits = hits + 1" ,CONNECT); |
Спустя 1 минута, 39 секунд (16.08.2009 - 12:42) Gradus написал(а):
Krevedko,круто
но ты всё таки кинь ссылочку интересно...

Спустя 19 минут, 33 секунды (16.08.2009 - 13:01) Krevedko написал(а):
Спустя 14 минут, 5 секунд (16.08.2009 - 13:15) glock18 написал(а):
Да, не забудьте, что по ip должен быть уникальный ключ, чтобы это работало так, как надо.
Спустя 2 часа, 2 минуты, 55 секунд (16.08.2009 - 15:18) Krevedko написал(а):
Люююди. Пожалуйста зайдите кто-нибудь (два-три человека)
на мой сайт
тут
хочу проверить счетчик.
кстати кто пожелает...могут войти что-нибудь написать.
логин-пароль
admin
11111111
если лень регаться
на мой сайт
тут
хочу проверить счетчик.
кстати кто пожелает...могут войти что-нибудь написать.
логин-пароль
admin
11111111
если лень регаться
Спустя 42 минуты, 59 секунд (16.08.2009 - 16:01) Krevedko написал(а):
Да, все работает. Благодарю. Вижу, что зашло 2 человека с этого форума. Один сделал 2 перехода по страницам, другой 12.