Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сброс постов в полноч

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: обнуление счётчика
terrors
Отправлено: 30 Августа, 2011 - 13:51:13
Post Id



Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




ребят кто знает как сделать чтоб посты считались не только за день но и была вторая статистика что например пользователь написал 222 поста за день а в полночь этот счётчик обнулялся сам и так постоянно ?
(Добавление)
переменную $daud уже создал в базу по умолчанию null задал . но если выводить эту переменную то она просто считает все посты а не обнуляется


-----
истина где-то рядом
 
 Top
КЫР
Отправлено: 30 Августа, 2011 - 16:27:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




храните дату написания последнего поста
при написании сравнивайте дату последнего и текущего. Если они не равны - сбрасывайте переменную на ноль и делайте инкримент (или сразу сбрасывайте на 1)


-----
Fuck you guys, I'll going home
 
 Top
iflight
Отправлено: 30 Августа, 2011 - 16:50:33
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


Помог: 2 раз(а)




крон?
 
 Top
terrors
Отправлено: 31 Августа, 2011 - 07:52:23
Post Id



Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




КЫР пишет:
храните дату написания последнего поста
при написании сравнивайте дату последнего и текущего. Если они не равны - сбрасывайте переменную на ноль и делайте инкримент (или сразу сбрасывайте на 1)


CODE (htmlphp):
скопировать код в буфер обмена
  1. $myday = date("d");
  2. mysql_query("Select `klu4` from setting WHERE myday = '".$myday."' LIMIT 1;");
  3. if (mysql_affected_rows() == 0) {
  4. mysql_query("update users set posts=posts-'".wtraf."', visit=visit where dayp='0' and posts > '".wtraf."'");
  5. mysql_query("update users set dayp='0', daya='0', visit=visit");
  6. mysql_query("update setting set myday='".$myday."'");
  7. }
  8.  

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


-----
истина где-то рядом
 
 Top
illy
Отправлено: 31 Августа, 2011 - 11:02:20
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




дату можно не всю. достаточно число месяца


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
terrors
Отправлено: 31 Августа, 2011 - 12:40:47
Post Id



Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




illy но ведь условие верно проверяет даты и по идее должно работать . но работает как простой счётчик постов . а вот как придумать чтоб он сам обнулсялся ?


-----
истина где-то рядом
 
 Top
illy
Отправлено: 31 Августа, 2011 - 13:42:39
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




в mysql неочень разбираюсь Не понял
в каждый пост добавь дату поста date("j");
при подсчёте $myday = date("j");
если даты неравны то обнулить


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
terrors
Отправлено: 31 Августа, 2011 - 13:59:06
Post Id



Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




illy всё равно не осилил ну спасибо за ответ


-----
истина где-то рядом
 
 Top
illy
Отправлено: 31 Августа, 2011 - 14:40:14
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




я честно не понял что именно надо Не понял


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
terrors
Отправлено: 02 Сентября, 2011 - 21:56:21
Post Id



Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




illy пишет:
я честно не понял что именно надо Не понял

ну возьмём образно . есть чат . в чате пользователь пишет сообщения и они записываются в базу грубо говоря пользователь набралл 13888 сообщений . я хочу сделать чтоб к этим соощениям в скобках был второй счётчик который бы считал сообщения за сутки . тоесть сообщений 13888 (сегодня +1123). но чтоб сообщения за сутки сами обнулялись а то я создал условия которые уже написал выше и он считает но не обнуляется каждые сутки а продолжает считать и того через нежделю у всех по 5873 сообщений и выше


-----
истина где-то рядом
 
 Top
illy
Отправлено: 03 Сентября, 2011 - 17:24:25
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




а ты сделай отдельную таблицу чтоли Не понял не знаю как пользоваться мускулом
там будет хранится количество сообщений юзеров за день

ник|количество сообщений|
3|0|
illy|426|
terrors|7|

3 это число месяца - в первой ячейке пусть хранится

прежде чем добавить сообщение-смотрим число месяца.
если оно не совпадает с сегодняшним, то обнуляем все сообщения у всех
и ставим сегодняшнее число.
далее просто увеличиваем число сообщений юзера на единицу Ха-ха


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
terrors
Отправлено: 03 Сентября, 2011 - 17:34:36
Post Id



Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




как вариант конечно очень это хороший но не знаю как именно число в базу вбить . у меня регионовский код . на файлах думаю не прокатит этот лисапед а в базе 1 там ид идёт


-----
истина где-то рядом
 
 Top
Slavenin
Отправлено: 04 Сентября, 2011 - 15:52:06
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




terrors, создаешь отдельную таблицу t_message вида

ID_user|all_mess|day_mess|last_upd

в первое поле пишешь айдишник юзера, во второе - общее количество сообщений, в третье - количество сообщений за день, в четвертое - дату последнего обновления.

Логика: когда юзер пишет сообщение, в эту таблицу заносится примерно следующее

CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE t_message
  2. all_mess = all_mess+1,
  3. day_mess=(SELECT IF(last_upd = NOW(), day_mess+1, 1)
  4.                  FROM t_message
  5.                  WHERE ID_user = (SELECT user_id FROM user WHERE login = 'логин юзера')),
  6. last_upd = NOW()
  7. WHERE ID = (SELECT user_id FROM user WHERE login = 'логин юзера')


Работоспособность запроса не гарантирую, так как проверить негде, можно все действия запроса разделить на несколько действия внутри скрипта, сначала проверить дату, а потом уже писать в базу. Да, и подразумевается что строка с сообщениями юзера уже существует в этой таблице

Да, и еще, гарантированно обнулить все сообщения в базе, можно только запуско специально скрипта с запросом с помощью cron! все остальное не принесет никакого результата, так как количество сообщений у юзеров будет меняться только когда кто-то из них что-то напишет, в противном случае оно так и будет висеть вчерашним числом.

(Отредактировано автором: 04 Сентября, 2011 - 15:57:45)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB