Counter MySQL/PHP для всех данных в базе

morsh

Новичок
Counter MySQL/PHP для всех данных в базе

Всем привет!
помогите или посоветуйте мне в одной проблемке.

у меня есть БД MySql, в которой внесено например 100 продуктов. я нуждаюсь в таком счетчике, который бы считал user'ов, которые посещают какой либо продукт. и позднее хочу делать статистика для каждого продукта (количество посетителей на странице данного продукта, кто онлайн, посещений за неделю,месяц, год и так далее).

В общем ОДИН счетчик для всех продуктов!

Если кто-то распологает полезной информацией или знает где можно найти такой скрипт, пожалуйста помогите.
 

A-Lex[FM]

Web/Highload/DataScience
как я могу предположить, все продукты лежат в одной таблице и у каждого есть id который ты используешь в урлах. добавь ещё один столбец для своего счётчика и делай его update погда пользователь заходит по урлу вида product.php?id=...

так ты получишь информацию о том, сколько человек просматривало твой продукт.

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

-~{}~ 03.08.07 16:06:

или заведи таблицу, в которую будет писаться инфо о том кто и когда просмотрел тот или иной продукт
например
id | product_id | user_id | date
 

Alexandre

PHPПенсионер
зачем?

посещений за неделю,месяц, год и так далее).
только если для внутреннего маркетинга... имеет ли смысл пользователям знать эту информацию? только если в процентном соотношении (какой продукт наиболее посещаемый)

а вот конкурентам - она будет очень даже полезна, чтоб оценить ВАшу конкурентноспособность.

так - информация к размышлению



делай его update погда пользователь заходит по урлу вида product.php?id=...
для нормальной статистикинадо иметь дополнительную таблицу:
product_id
visit_time

при наличии захода на страницу - делать INSERT

раз в сутки всю информацию надо агрегировать в свобную таблицуproduct_id
visit_time
count
а первую таблицу, после обработки - чистить (TRUNCATE TABLE)).

ты сможешь осуществлять выборки по день/неделя/месяц , а по первой таблице можно строить ежедневной загрузки по часам.

Хотя как вариант, можно обойтись и одной таблицей
дата (c нолевыми значениями hh:mm)
продукт
кол-во за сутки
 

morsh

Новичок
Вся инфо располагается в 7 таблицах, каждый продукт имеет соответственно свой ID.

для подсчета посетителей и статистики я сделал 2 новых таблицы: user и statistik. В этих таблицах будут прописыватся те ID, которые посещаются.

например:
ID | User_IP | Date | Week | Month | Year
1 192.000.2.1 01 21 05 2007

по поводу: кто онлайн... я неправильно выразился. это неважно.

вся информация нужна только мне (админу). а если кто то попросит узнать количество посещений на данный продукт, то я могу предоставить такую информацию.

важно, что я могу делать статистику по неделям, месяцам, годам. как мне этого добится?

нужен group by? да? например select * from statistik where ID = 1 group by week;

-~{}~ 03.08.07 14:19:

неправильно запрос написал, правильно так:
select count(*) from statistik where ID = 1 group by week или month или year;
 

morsh

Новичок
ну да соответственно то для чего хочешь статистику

-~{}~ 03.08.07 14:25:

только теперь вопрос:
как мне узнать какая неделя сегодня по счету и записать это в поле week?
 

kruglov

Новичок
В мане по MySQL в разделе date and time functions ничего про недели нету?
 

morsh

Новичок
спасибо всем за помощь. Буду воплощать все в реальность.
 

Alexandre

PHPПенсионер
ну это как ты реализуешь... вариантов 2
ID | User_IP | Date | Week | Month | Year по записи на посещение...
ID | User_IP | Date | Week | Month | Year | count - по записи на пару ID - User_IP если было посещение
во втором случае база будет меньше раздуваться

конечно, если мы считаем, что в один день, один юзер может посетить только один продукт, то мое предложение бесмысленно
 
Сверху