<?php
  ///////////////////////////////////////////////////
  // Система учёта посещаемости сайта - PowerCounter
  // 2003-2006 (C) IT-студия SoftTime (http://www.softtime.ru)
  // Поддержка: http://www.softtime.ru/forum/
  // Симдянов И.В. (simdyanov@softtime.ru)
  // Кузнецов М.В. (kuznetsov@softtime.ru)
  // Голышев С.В. (softtime@softtime.ru) 
  // Левин А.В. (loki_angel@mail.ru)
  ///////////////////////////////////////////////////	
  set_time_limit(0); //добавлено 10.02.06
  // Выставляем уровень обработки ошибок (http://www.softtime.ru/info/articlephp.php?id_article=23)
  Error_Reporting(E_ALL & ~E_NOTICE);
  // Устанавливаем соединение с базой данных
  require_once("config.php");
  // Библиотека функций архивации
  require_once("utils_hits.php");
  require_once("utils_ip.php");
  require_once("utils_client.php");
  require_once("utils_robots.php");
  require_once("utils_enterpoints.php");
  require_once("utils_deep.php");
  require_once("utils_time.php");
  require_once("utils_refferer.php");
  require_once("utils_num_search.php");
  require_once("utils_search.php");

  // Получаем дату начала регистрации данных и число прошедших с начала регистрации
  $dat = mysql_query("SELECT UNIX_TIMESTAMP(MIN(putdate)) AS data FROM $tbl_ip");
  if (!$dat) exit(mysql_error());
  $arr_date = mysql_fetch_array($dat);
  // Последней полный день
  $last_day = mktime(23,59,59, date("m"), date("d")-1, date("Y"));
  // Получаем последнюю дату архивации
  $query = "SELECT UNIX_TIMESTAMP(MAX(putdate)) FROM $tbl_arch_hits";
  $arh = mysql_query($query);
  if(mysql_num_rows($arh) > 0)
  {
    $last_date = mysql_result($arh,0);
  }
  if(empty($last_date))
  {
    if(isset($arr_date['data']))
    {
      // Если запуск первый - берём дату из $tbl_searchquerys 
      $last_date = $arr_date['data'];
    }
    else
    {
      // Иначе берём текущие сутки
      $last_date = time();
    }
  }
  //блок архивации
  if (ceil(($last_day - $last_date)/24/60/60))
  {
    ///////////////////////////////////////////////////
    // Архивируем информацию в ежедневные таблицы
    ///////////////////////////////////////////////////
    archive_ip              ($tbl_ip, $tbl_arch_ip);
    archive_client          ($tbl_ip, $tbl_arch_clients);
    archive_robots          ($tbl_ip, $tbl_arch_robots);
    archive_enterpoints     ($tbl_ip, $tbl_pages, $tbl_arch_enterpoint);
    archive_deep            ($tbl_ip, $tbl_arch_deep);
    archive_time            ($tbl_ip, $tbl_arch_time, $tbl_arch_time_temp);
    archive_refferer        ($tbl_refferer, $tbl_arch_refferer);
    archive_searchquery     ($tbl_searchquerys, $tbl_arch_searchquery);
    archive_num_searchquery ($tbl_searchquerys, $tbl_arch_num_searchquery);
    archive_hit_hosts       ($tbl_ip, $tbl_arch_hits);

    ///////////////////////////////////////////////////
    // Удаляем старые записи
    ///////////////////////////////////////////////////
    $query = "SELECT MAX(putdate) FROM $tbl_arch_hits";
    $arh = mysql_query($query);
    if(!$arh) exit("Сбой при удалении старых записей");
    if(mysql_num_rows($arh) > 0)
    {
      $last_date_arch = mysql_result($arh,0);				//	INTERVAL 30 DAY добавлено 10.02.06
      $arr[] = "DELETE FROM $tbl_ip WHERE putdate <= '$last_date_arch' - INTERVAL 30 DAY";
      $arr[] = "DELETE FROM $tbl_refferer WHERE putdate <= '$last_date_arch' - INTERVAL 30 DAY";
      $arr[] = "DELETE FROM $tbl_searchquerys WHERE putdate <= '$last_date_arch' - INTERVAL 30 DAY";
      foreach($arr as $query) if(!mysql_query($query)) exit(mysql_error());
    }
  
    ///////////////////////////////////////////////////
    // Архивируем информацию в еженедельные таблицы
    ///////////////////////////////////////////////////
    archive_hit_hosts_week       ($tbl_arch_hits, $tbl_arch_hits_week);
    archive_ip_week              ($tbl_arch_ip, $tbl_arch_ip_week);
    archive_client_week          ($tbl_arch_clients, $tbl_arch_clients_week);
    archive_robots_week          ($tbl_arch_robots, $tbl_arch_robots_week);
    archive_enterpoints_week     ($tbl_arch_enterpoint, $tbl_arch_enterpoint_week);
    archive_deep_week            ($tbl_arch_deep, $tbl_arch_deep_week);
    archive_time_week            ($tbl_arch_time, $tbl_arch_time_week);
    archive_refferer_week        ($tbl_arch_refferer, $tbl_arch_refferer_week);
    archive_searchquery_week     ($tbl_arch_searchquery, $tbl_arch_searchquery_week);
    archive_num_searchquery_week ($tbl_arch_num_searchquery, $tbl_arch_num_searchquery_week);
  
    ///////////////////////////////////////////////////
    // Архивируем информацию в еженемесячные таблицы
    ///////////////////////////////////////////////////
    archive_hit_hosts_month       ($tbl_arch_hits, $tbl_arch_hits_month);
    archive_ip_month              ($tbl_arch_ip, $tbl_arch_ip_month);
    archive_clients_month         ($tbl_arch_clients, $tbl_arch_clients_month);
    archive_robots_month          ($tbl_arch_robots, $tbl_arch_robots_month);
    archive_enterpoints_month     ($tbl_arch_enterpoint, $tbl_arch_enterpoint_month);
    archive_deep_month            ($tbl_arch_deep, $tbl_arch_deep_month);
    archive_time_month            ($tbl_arch_time, $tbl_arch_time_month);
    archive_refferer_month        ($tbl_arch_refferer, $tbl_arch_refferer_month);
    archive_searchquery_month     ($tbl_arch_searchquery, $tbl_arch_searchquery_month);
    archive_num_searchquery_month ($tbl_arch_num_searchquery, $tbl_arch_num_searchquery_month);
 }
?>
