Счетчик просмотров за последнюю неделю - PHP

EO
На сайте с 10.05.2005
Offline
114
670

Здравствуйте!

Хочу сделать счетчик просмотров за последние 7 дней, например.

Есть таблица в базе stats с полями: id, hits, time

в конце дня крон записывает в поле с id=1 hits за сегодня.

При этом не соображу, как написать запрос к Mysql чтобы в полях таблицы с id от 1 до 7 сохранялись hits за последние 7 дней?

Т.е. нужно как-то сдвиг делать - вчерашние hits (id=2) списывать в позавчера(id=3), сегодня(id=1) списывать во вчера(id=2), а в сегодня (id=1) записывать новое значение (и так начиная с id=7).

Подскажите, пожалуйста, как это красиво реализовать на Mysql?

Бооольшой портал о мааалом бизнесе (http://www.bizguru.ru/) | Более 1000 бизнес-программ (http://1.44mb.ru) По выходным не работаю - не ищите меня в сети. В понедельник я обычно сам возвращаюсь :)
siv1987
На сайте с 02.04.2009
Offline
427
#1

INSERT INTO table VALUES (id, hits, time) (WEEKDAY(NOW())+1, ....

VHS
На сайте с 28.09.2007
Offline
142
VHS
#2

Немного оффтопа - сам подход к задаче явно неверный.

SELECT COUNT(*) FROM _TABLE_ WHERE `time` BETWEEN `что-то` AND `что-то на неделю больше` - вот и весь счетчик.

ДП
На сайте с 23.11.2009
Offline
203
#3

Так-то да, но человек не хочет хранить данные, которые не нужны, поэтому и решил таким способом сделать. С другой стороны там этих данных копейки будет, если чисто число просмотров хранить.

Вообще перед вставкой делать апдейт set id=id+1 (ну и удалять лишнюю строку потом), вот только как себя этот апдейт с уникальным значением, при его наличии, поведет - я не знаю.

EO
На сайте с 10.05.2005
Offline
114
#4

Спасибо всем за помощь! Все гениальное просто, думаю, это самое идеальное решение: INSERT INTO table VALUES (id, hits, time) (WEEKDAY(NOW())+1, ....

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий