 |
Статистика посещений за неделю |
 |
19.09.2009, 10:24
|
#1
|
|
Постоялец
Renovatio вне форума
Регистрация: 04.12.2007
Адрес: Стул
Сообщений: 751
|
Статистика посещений за неделю
Как написать статистику посещений за неделю?
Например вот так:
Понедельник: 25
Вторник: 15
Среда: 23
Четверг: 20
Пятница: 5
Суббота: 100
Воскресенье: 120
__________________
Когда власть любви превзойдет
любовь к власти,наступит мир на земле. -Jimi Hendrix Тыкни
Последний раз редактировалось Renovatio, 19.09.2009 в 10:54.
|
|
|
|
19.09.2009, 11:22
|
#2
|
|
Постоялец
rohard вне форума
Регистрация: 19.01.2009
Адрес: На восток от Солнца, на запад от Луны.
Сообщений: 1,120
|
Если тебе нужно знать, сколько людей посещают твой сайт по пятницам, к примеру, то так же, как и обычный счетчик посещений. Только запись должна производиться в разные файлы (7 штук, на каждый день недели). Можешь и в БД, только смысла не много.
Если же тебе нужно знать сколько твой сайт посетили в конкретную пятницу (опять же, к примеру), то тут все немного сложнее.
__________________
Почти.
|
|
|
|
19.09.2009, 11:44
|
#3
|
|
Постоялец
Googleman вне форума
Регистрация: 12.08.2008
Сообщений: 762
|
Цитата:
Сообщение от rohard
Если же тебе нужно знать сколько твой сайт посетили в конкретную пятницу (опять же, к примеру), то тут все немного сложнее.
|
Если с бд работать, то совсем не намного.
Цитата:
Сообщение от rohard
Имелось в виду, что десятком файлов и парой-тройкой строчек тут не обойтись ;)
|
Пожалуй да )
Последний раз редактировалось Googleman, 19.09.2009 в 14:23.
|
|
|
|
19.09.2009, 12:04
|
#4
|
|
Постоялец
rohard вне форума
Регистрация: 19.01.2009
Адрес: На восток от Солнца, на запад от Луны.
Сообщений: 1,120
|
Цитата:
Сообщение от Googleman
Если с бд работать, то совсем не намного.
|
Имелось в виду, что десятком файлов и парой-тройкой строчек тут не обойтись ;)
__________________
Почти.
|
|
|
|
20.09.2009, 03:31
|
#5
|
|
Новичок
rozdo вне форума
Регистрация: 19.09.2009
Сообщений: 2
|
А не проще использовать статистику крупных сайтов? К примеру liveinternet.ru
|
|
|
|
20.09.2009, 11:25
|
#6
|
|
Нарушитель правил поведения на форуме
Весёлый Молочник вне форума
Регистрация: 06.10.2006
Адрес: Якутск
Сообщений: 5,530
|
Не проще, просто потому, что юзверы СТК сидят без внешки, следовательно счётчик их обрабатывать не будет.
|
|
|
|
21.09.2009, 11:00
|
#7
|
|
Постоялец
Renovatio вне форума
Регистрация: 04.12.2007
Адрес: Стул
Сообщений: 751
|
Может напишите мне примерный код?
__________________
Когда власть любви превзойдет
любовь к власти,наступит мир на земле. -Jimi Hendrix Тыкни
|
|
|
|
 |
|
 |
22.09.2009, 22:23
|
#8
|
|
SuperVisor TF2
Regis Filius вне форума
Регистрация: 21.06.2008
Сообщений: 623
|
Ни разу не писал код статистики посещений за неделю, но думаю, что ничего сложного тут нет. Главное определиться с тем, что можно считать посещением и как долго сохранять статистику. Довольно легко можно будет сделать статистику на каждый день, которая будет считать сколько всего открывали страницу пользователи без учёта с какого IP и каких браузеров заходили. Если делать подсчёт уже с тем, что данные с одного IP не считаются, чуть сложнее.
Наиболее простой вариант: вписать код, который будет обновлять таблицу views, которая содержит в себе всего три столбца: ID, дата и количество просмотров. Каждое открытие страницы увеличивает количество просмотров на один у определённого дня, в дате будет записана дата в днях, месяцах и годах. Код каждый раз проверяет который сейчас день, если такой день уже имеется, то увеличивает количество просмотров, если нет, то создаёт новую строчку, которая датой соответствует той, которая сейчас, и ставит количество просмотров 1. Ну и потом следующее посещения увеличивают счётчик. Топорно, но работать будет.
UPDATE:
Наскоряк написал код, получилось довольно компактно. Как вариант можно добавить ещё один столбец, в котором хранился бы день недели (понедельник, вторник и т.д.), чтобы выводить и его тоже. Если делать проверку по IP, то надо будет создавать ещё одну таблицу, где будут вестись логи посещения или же уместить всё в одной таблице и количество просмотров будет равняться количеству различных IP, которые заходили на сайт за определенный день. С помощью этого же можно прослеживать за тем, кто именно посещает сайт.
Последний раз редактировалось Regis Filius, 23.09.2009 в 11:45.
|
|
|
|
 |
23.09.2009, 20:48
|
#9
|
|
Постоялец
Renovatio вне форума
Регистрация: 04.12.2007
Адрес: Стул
Сообщений: 751
|
Цитата:
Сообщение от Regis Filius
UPDATE:
Наскоряк написал код, получилось довольно компактно. Как вариант можно добавить ещё один столбец, в котором хранился бы день недели (понедельник, вторник и т.д.), чтобы выводить и его тоже. Если делать проверку по IP, то надо будет создавать ещё одну таблицу, где будут вестись логи посещения или же уместить всё в одной таблице и количество просмотров будет равняться количеству различных IP, которые заходили на сайт за определенный день. С помощью этого же можно прослеживать за тем, кто именно посещает сайт.
|
Большое спасибо за советы! Мне очень помог. А где кстати код который ты написал наскоряк?
__________________
Когда власть любви превзойдет
любовь к власти,наступит мир на земле. -Jimi Hendrix Тыкни
|
|
|
|
 |
|
 |
23.09.2009, 22:24
|
#10
|
|
SuperVisor TF2
Regis Filius вне форума
Регистрация: 21.06.2008
Сообщений: 623
|
Эээ... я его уже удалил. Вот новый код написал только что.
Без проверки по IP, зато с русскими днями недели из-за чего код стал несколько длиннее. Что мне здесь не нравится, так это то, что приходится отправлять целых три запроса в базу данных.
Кто-нибудь может подсказать, как убрать лишний запрос в 55 строке, если возможно?
PHP код:
<html><body> <?php // ПОДКЛЮЧАЕМСЯ К БАЗЕ ДАННЫХ mysql_connect ('localhost', 'user', 'pass'); mysql_select_db ('test');
// ПОЛУЧАЕМ ДАННЫЕ О ПОСЕЩЕНИЯХ ЗА ПОСЛЕДНИЕ СЕМЬ ДНЕЙ $query = mysql_query ("SELECT * FROM `logs` ORDER BY `date` DESC LIMIT 7"); $row = mysql_fetch_array ($query);
// ЕСЛИ ЕСТЬ ПОСЕЩЕНИЯ, ВЫВОДИМ СТАТИСТИКУ ЦИКЛОМ if ($row > 0) { do { $date = $row['date']; $wday = $row['wday']; $views = $row['views']; echo "$date ($wday) - $views <br />"; } while ($row = mysql_fetch_array ($query)); } // ЕСЛИ НЕ БЫЛО ПОСЕЩЕНИЙ else echo "Вы наш первый посетитель! о_О <br />";
// ДОБАВЛЯЕМ НАШЕ ПОСЕЩЕНИЕ ПОСЛЕ ПРОВЕРКИ, ЕСТЬ ЛИ ПОСЕЩЕНИЯ НА ЭТОТ ДЕНЬ $date = date('Y-m-d'); $wday = date('D'); // РУССКОЕ НАЗВАНИЕ ДЛЯ НЕДЕЛИ switch ($wday) { case Mon: $wday = 'Понедельник'; break; case Tue: $wday = 'Вторник'; break; case Wed: $wday = 'Среда'; break; case Thu: $wday = 'Четверг'; break; case Fri: $wday = 'Пятница'; break; case Sat: $wday = 'Суббота'; break; case Sun: $wday = 'Воскресение'; break; } // ВОТ ЭТОТ ЛИШНИЙ ЗАПРОС $query = mysql_query ("SELECT * FROM `logs` WHERE `date`='$date'"); $row = mysql_fetch_array ($query); if ($row > 0) $update = mysql_query ("UPDATE `logs` SET `views`=`views`+1 WHERE `date`='$date'"); else $insert = mysql_query ("INSERT INTO `logs` SET `date`='$date', `wday`='$wday', `views`='1'"); ?> </body></html>
Таблица logs:
PHP код:
CREATE TABLE `logs` ( `id` MEDIUMINT NOT NULL AUTO_INCREMENT , `date` DATE NOT NULL , `wday` VARCHAR( 15 ) NOT NULL , `views` MEDIUMINT NOT NULL , PRIMARY KEY ( `id` ) );
P.S. Я изобрёл колесо 
|
|
|
|
 |
| Опции темы |
|
|
| Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
|
Часовой пояс GMT +9, время: 11:32. |
|
|