Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
ребят кто знает как сделать чтоб посты считались не только за день но и была вторая статистика что например пользователь написал 222 поста за день а в полночь этот счётчик обнулялся сам и так постоянно ? (Добавление)
переменную $daud уже создал в базу по умолчанию null задал . но если выводить эту переменную то она просто считает все посты а не обнуляется
----- истина где-то рядом
КЫР
Отправлено: 30 Августа, 2011 - 16:27:24
Частый гость
Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011 Откуда: Новосибирск
Помог: 2 раз(а)
храните дату написания последнего поста
при написании сравнивайте дату последнего и текущего. Если они не равны - сбрасывайте переменную на ноль и делайте инкримент (или сразу сбрасывайте на 1)
----- Fuck you guys, I'll going home
iflight
Отправлено: 30 Августа, 2011 - 16:50:33
Гость
Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011 Откуда: Россия, Сыктывкар
Помог: 2 раз(а)
крон?
terrors
Отправлено: 31 Августа, 2011 - 07:52:23
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
КЫР пишет:
храните дату написания последнего поста
при написании сравнивайте дату последнего и текущего. Если они не равны - сбрасывайте переменную на ноль и делайте инкримент (или сразу сбрасывайте на 1)
mysql_query("update users set posts=posts-'".wtraf."', visit=visit where dayp='0' and posts > '".wtraf."'");
mysql_query("update users set dayp='0', daya='0', visit=visit");
mysql_query("update setting set myday='".$myday."'");
}
ну я вот такой лисапед создал только он почему то не реагирует . а как именно проверить первый и последний пост чтоб точно система их не путала
----- истина где-то рядом
illy
Отправлено: 31 Августа, 2011 - 11:02:20
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
дату можно не всю. достаточно число месяца
----- Всё гениальное - просто
И ещё проще, если ты - индиго
terrors
Отправлено: 31 Августа, 2011 - 12:40:47
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
illy но ведь условие верно проверяет даты и по идее должно работать . но работает как простой счётчик постов . а вот как придумать чтоб он сам обнулсялся ?
----- истина где-то рядом
illy
Отправлено: 31 Августа, 2011 - 13:42:39
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
в mysql неочень разбираюсь
в каждый пост добавь дату поста date("j");
при подсчёте $myday = date("j");
если даты неравны то обнулить
----- Всё гениальное - просто
И ещё проще, если ты - индиго
terrors
Отправлено: 31 Августа, 2011 - 13:59:06
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
illy всё равно не осилил ну спасибо за ответ
----- истина где-то рядом
illy
Отправлено: 31 Августа, 2011 - 14:40:14
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
я честно не понял что именно надо
----- Всё гениальное - просто
И ещё проще, если ты - индиго
terrors
Отправлено: 02 Сентября, 2011 - 21:56:21
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
illy пишет:
я честно не понял что именно надо
ну возьмём образно . есть чат . в чате пользователь пишет сообщения и они записываются в базу грубо говоря пользователь набралл 13888 сообщений . я хочу сделать чтоб к этим соощениям в скобках был второй счётчик который бы считал сообщения за сутки . тоесть сообщений 13888 (сегодня +1123). но чтоб сообщения за сутки сами обнулялись а то я создал условия которые уже написал выше и он считает но не обнуляется каждые сутки а продолжает считать и того через нежделю у всех по 5873 сообщений и выше
----- истина где-то рядом
illy
Отправлено: 03 Сентября, 2011 - 17:24:25
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
а ты сделай отдельную таблицу чтоли не знаю как пользоваться мускулом
там будет хранится количество сообщений юзеров за день
3 это число месяца - в первой ячейке пусть хранится
прежде чем добавить сообщение-смотрим число месяца.
если оно не совпадает с сегодняшним, то обнуляем все сообщения у всех
и ставим сегодняшнее число.
далее просто увеличиваем число сообщений юзера на единицу
----- Всё гениальное - просто
И ещё проще, если ты - индиго
terrors
Отправлено: 03 Сентября, 2011 - 17:34:36
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
как вариант конечно очень это хороший но не знаю как именно число в базу вбить . у меня регионовский код . на файлах думаю не прокатит этот лисапед а в базе 1 там ид идёт
----- истина где-то рядом
Slavenin
Отправлено: 04 Сентября, 2011 - 15:52:06
Посетитель
Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010 Откуда: Тверь
Помог: 4 раз(а)
terrors, создаешь отдельную таблицу t_message вида
ID_user|all_mess|day_mess|last_upd
в первое поле пишешь айдишник юзера, во второе - общее количество сообщений, в третье - количество сообщений за день, в четвертое - дату последнего обновления.
Логика: когда юзер пишет сообщение, в эту таблицу заносится примерно следующее
WHERE ID_user =(SELECT user_id FROM user WHERE login ='логин юзера')),
last_upd = NOW()
WHERE ID =(SELECT user_id FROM user WHERE login ='логин юзера')
Работоспособность запроса не гарантирую, так как проверить негде, можно все действия запроса разделить на несколько действия внутри скрипта, сначала проверить дату, а потом уже писать в базу. Да, и подразумевается что строка с сообщениями юзера уже существует в этой таблице
Да, и еще, гарантированно обнулить все сообщения в базе, можно только запуско специально скрипта с запросом с помощью cron! все остальное не принесет никакого результата, так как количество сообщений у юзеров будет меняться только когда кто-то из них что-то напишет, в противном случае оно так и будет висеть вчерашним числом.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.