• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/searcher.php
  • Класс: CSearcher
  • Вызов: CSearcher::GetDynamicList
static function GetDynamicList($SEARCHER_ID, $by = 's_date', $order = 'desc', &$arMaxMin = [], $arFilter = [])
{
	$err_mess = "File: ".__FILE__."
Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $SEARCHER_ID = intval($SEARCHER_ID); $arSqlSearch = Array(); $strSqlSearch = ""; if (is_array($arFilter)) { foreach ($arFilter as $key => $val) { if(is_array($val)) { if(count($val) <= 0) continue; } else { if( ((string)$val == '') || ($val === "NOT_REF") ) continue; } $key = strtoupper($key); switch($key) { case "DATE1": if (CheckDateTime($val)) $arSqlSearch[] = "D.DATE_STAT>=".$DB->CharToDateFunction($val, "SHORT"); break; case "DATE2": if (CheckDateTime($val)) $arSqlSearch[] = "D.DATE_STAT<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY"; break; } } } foreach($arSqlSearch as $sqlWhere) $strSqlSearch .= " and (".$sqlWhere.") "; if ($by == "s_date") $strSqlOrder = "ORDER BY D.DATE_STAT"; else { $strSqlOrder = "ORDER BY D.DATE_STAT"; } if ($order!="asc") { $strSqlOrder .= " desc "; } $strSql = " SELECT ".$DB->DateToCharFunction("D.DATE_STAT","SHORT")." DATE_STAT, DAYOFMONTH(D.DATE_STAT) DAY, MONTH(D.DATE_STAT) MONTH, YEAR(D.DATE_STAT) YEAR, D.TOTAL_HITS FROM b_stat_searcher_day D WHERE D.SEARCHER_ID = $SEARCHER_ID $strSqlSearch $strSqlOrder "; $res = $DB->Query($strSql, false, $err_mess.__LINE__); $strSql = " SELECT max(D.DATE_STAT) DATE_LAST, min(D.DATE_STAT) DATE_FIRST, DAYOFMONTH(max(D.DATE_STAT)) MAX_DAY, MONTH(max(D.DATE_STAT)) MAX_MONTH, YEAR(max(D.DATE_STAT)) MAX_YEAR, DAYOFMONTH(min(D.DATE_STAT)) MIN_DAY, MONTH(min(D.DATE_STAT)) MIN_MONTH, YEAR(min(D.DATE_STAT)) MIN_YEAR FROM b_stat_searcher_day D WHERE D.SEARCHER_ID = $SEARCHER_ID $strSqlSearch "; $a = $DB->Query($strSql, false, $err_mess.__LINE__); $ar = $a->Fetch(); $arMaxMin["MAX_DAY"] = $ar["MAX_DAY"]; $arMaxMin["MAX_MONTH"] = $ar["MAX_MONTH"]; $arMaxMin["MAX_YEAR"] = $ar["MAX_YEAR"]; $arMaxMin["MIN_DAY"] = $ar["MIN_DAY"]; $arMaxMin["MIN_MONTH"] = $ar["MIN_MONTH"]; $arMaxMin["MIN_YEAR"] = $ar["MIN_YEAR"]; return $res; }