• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/statistic.php
  • Класс: CStatistics
  • Вызов: CStatistics::CleanUpSearcherDynamic
static function CleanUpSearcherDynamic()
{
	set_time_limit(0);
	ignore_user_abort(true);
	$err_mess = "File: ".__FILE__."
Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $DAYS = intval(COption::GetOptionString("statistic", "SEARCHER_DAYS")); $SID = 0; if ($DAYS>=0) { $strSql = " SELECT ID, ifnull(DYNAMIC_KEEP_DAYS,'$DAYS') as DYNAMIC_KEEP_DAYS FROM b_stat_searcher "; $w = $DB->Query($strSql, false, $err_mess.__LINE__); while ($wr = $w->Fetch()) { $SDAYS = intval($wr["DYNAMIC_KEEP_DAYS"]); $SID = intval($wr["ID"]); $strSql = " SELECT ID, TOTAL_HITS FROM b_stat_searcher_day WHERE SEARCHER_ID = $SID AND DATE_STAT <= DATE_SUB(CURDATE(),INTERVAL $SDAYS DAY) "; $z = $DB->Query($strSql, false, $err_mess.__LINE__); while ($zr=$z->Fetch()) { $ID = $zr["ID"]; if (intval($zr["TOTAL_HITS"])>0) { $arFields = Array( "DATE_CLEANUP" => $DB->GetNowFunction(), "TOTAL_HITS" => "TOTAL_HITS + ".intval($zr["TOTAL_HITS"]), ); $DB->Update("b_stat_searcher",$arFields,"WHERE ID='$SID'",$err_mess.__LINE__); } $strSql = "DELETE FROM b_stat_searcher_day WHERE ID='$ID'"; $DB->Query($strSql, false, $err_mess.__LINE__); } } if (intval($SID)>0 && COption::GetOptionString("statistic", "USE_AUTO_OPTIMIZE")=="Y") { $DB->Query("OPTIMIZE TABLE b_stat_searcher_day", false, $err_mess.__LINE__); } } }