Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вывести больше информации из счетчика PowerCounter.

Сообщения:  [1-9] 

 
 автор: Владимир55   (14.10.2006 в 09:46)   письмо автору
 
   для: cheops   (13.10.2006 в 22:41)
 

Большое спасибо за советы!

Хотя это решение и неоптимально, но благодаря Вам я впервые что-то усовершенствовал на уровне рнр, и это мне доставляет истинное удовольствие!

Спасибо!

   
 
 автор: cheops   (13.10.2006 в 22:41)   письмо автору
 
   для: Владимир55   (13.10.2006 в 15:36)
 

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

   
 
 автор: Владимир55   (13.10.2006 в 15:36)   письмо автору
 
   для: Владимир55   (13.10.2006 в 14:38)
 

Я сделал два независимых скрипта, выполняемых последовательно.

Один - Ваша первая редакция и он дает число посетителей сегодня.
Второй - редакция, текст которой я привел под чертой, дающая число посетителей вчера.

Все работает прекрасно!
Но... требует времени!

Я провел такой эксперимент.

Чистый файл на моем хостинге открывается за долю секунды.
Тот же файл со скриптом "Сегодня" открывается за 7 секунд.
Файл со скриптом "Вчера" открвается за 25-30 секунд.
Файл с обоими скритами открывается тоже за 25-30 сеунд.

Это нормально? Действительно файл на 1 Кб и обращение к базе требуют столько времени?
Или я в чем-то напортачил?

=================
<?php
require_once("config.php");
$tmp = "DATE(putdate) = DATE(NOW() - INTERVAL 1 DAY)";
$tbl_ip = "ip";
// Общее число хитов за сутки
$query_total_hit = "SELECT COUNT(*) FROM $tbl_ip WHERE ".$tmp;
// Подсчитываем число чистых IP-адресов (хостов) за сутки
$query_host = "SELECT COUNT(DISTINCT ip) FROM $tbl_ip WHERE
systems != 'none' AND
systems != 'robot_yandex' AND
systems != 'robot_google' AND
systems != 'robot_rambler' AND
systems != 'robot_aport' AND
systems != 'robot_msnbot' AND ".$tmp;

// Осуществляем запросы к базе данных
$tot_hit = mysql_query($query_total_hit);
if(!$tot_hit) exit("total_hit ".mysql_error());
$uni_hst = mysql_query($query_host);
if(!$uni_hst) exit("host ".mysql_error());

// Получаем число хитов и хостов
$totalhists = mysql_result($tot_hit, 0);
$hosts = mysql_result($uni_hst, 0);

// Выводим их
echo "- Вчера посетителей на сайте $hosts<br>";
echo "- Вчера просмотрено страниц $totalhists<br>";
?>

   
 
 автор: Владимир55   (13.10.2006 в 14:38)   письмо автору
 
   для: cheops   (13.10.2006 в 13:28)
 

Заменить - это как?

В этом же скрипте вместо строки

$tmp = "YEAR(putdate) = YEAR(NOW()) AND
MONTH(putdate) = MONTH(NOW()) AND
DAYOFMONTH(putdate) = DAYOFMONTH(NOW())";

написать $tmp = "DATE(putdate) = DATE(NOW() - INTERVAL 1 DAY)";

Так?

Или Ваш код

<?php
$tmp = "DATE(putdate) = DATE(NOW() - INTERVAL 1 DAY)";
?>

вставить на страницу самостоятельно? Тогда куда - перед скриптом?

   
 
 автор: cheops   (13.10.2006 в 13:28)   письмо автору
 
   для: Владимир55   (13.10.2006 в 10:09)
 

Попробуйте заменить содержимое переменной $tmp следующим образом
<?php
$tmp 
"DATE(putdate) = DATE(NOW() - INTERVAL 1 DAY)";
?>

   
 
 автор: Владимир55   (13.10.2006 в 10:09)   письмо автору
 
   для: Владимир55   (12.10.2006 в 13:56)
 

Архивных файлов я в своем счетчике не обнаружил.

А нельзя ли "нарастить" Ваш прежний код - ведь он прекрасно себя зарекомендовал! Вот этот:

<?php
require_once("config.php");
$tmp = "YEAR(putdate) = YEAR(NOW()) AND
MONTH(putdate) = MONTH(NOW()) AND
DAYOFMONTH(putdate) = DAYOFMONTH(NOW())";
$tbl_ip = "ip";
// Общее число хитов за сутки
$query_total_hit = "SELECT COUNT(*) FROM $tbl_ip WHERE ".$tmp;
// Подсчитываем число чистых IP-адресов (хостов) за сутки
$query_host = "SELECT COUNT(DISTINCT ip) FROM $tbl_ip WHERE
systems != 'none' AND
systems != 'robot_yandex' AND
systems != 'robot_google' AND
systems != 'robot_rambler' AND
systems != 'robot_aport' AND
systems != 'robot_msnbot' AND ".$tmp;

// Осуществляем запросы к базе данных
$tot_hit = mysql_query($query_total_hit);
if(!$tot_hit) exit("total_hit ".mysql_error());
$uni_hst = mysql_query($query_host);
if(!$uni_hst) exit("host ".mysql_error());

// Получаем число хитов и хостов
$totalhists = mysql_result($tot_hit, 0);
$hosts = mysql_result($uni_hst, 0);

// Выводим их
echo "- сегодня посетителей на сайте $hosts<br>";
echo "- сегодня просмотрено страниц $totalhists<br>";
?>

   
 
 автор: Владимир55   (12.10.2006 в 13:56)   письмо автору
 
   для: cheops   (12.10.2006 в 13:52)
 

У меня стоит версия с названиями страниц, предоставленная Loki, который назвал её "хрен знает какая". Ноги растут отсюда http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3848

   
 
 автор: cheops   (12.10.2006 в 13:52)   письмо автору
 
   для: Владимир55   (12.10.2006 в 13:34)
 

У вас сейчас новая версия счётчика (с архивированием) или старая (без архивирования)?

   
 
 автор: Владимир55   (12.10.2006 в 13:34)   письмо автору
 
 

Вот здесь http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=24532&page=1 cheops рассказал, как вывести из счетчика информацию о числе посетителей и просмотренных страницах за сегодня. Я имею в виду его скрипт, начинающийся строками

Тогда вам следует использовать следующий скрипт
<?php
require_once("config.php");
$tmp = "YEAR(putdate) = YEAR(NOW()) AND
MONTH(putdate) = MONTH(NOW()) AND

Скрип работат превосходно, и, пользуясь случаем, я хочу от души поблагодарить за него cheops. Большое Вам спасбо, cheops!

Но теперь мне очень хочется вывести информацию о часле посетителей и просмотренных страницах за прошлый день. Мне кажется, что такую надстроечку к скрипту cheops сделать не так ж трудно, но мои многодневные попытки ни к чему не привели... Даже вооружившись Учебником по РНР, я так ничего и не сумел сделать! И поэтому обращаюсь с просьбой:

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

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования