• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/adv.php
  • Класс: CAdv
  • Вызов: CAdv::GetDynamicList
static function GetDynamicList($ADV_ID, $by = 's_date', $order = 'desc', &$arMaxMin = [], $arFilter = [])
{
	$err_mess = "File: ".__FILE__."
Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $ADV_ID = intval($ADV_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.GUESTS_DAY GUESTS, D.NEW_GUESTS NEW_GUESTS, D.FAVORITES FAVORITES, D.C_HOSTS_DAY C_HOSTS, D.SESSIONS SESSIONS, D.HITS HITS, D.GUESTS_DAY_BACK GUESTS_BACK, D.FAVORITES_BACK FAVORITES_BACK, D.HOSTS_DAY_BACK HOSTS_BACK, D.SESSIONS_BACK SESSIONS_BACK, D.HITS_BACK HITS_BACK FROM b_stat_adv_day D WHERE D.ADV_ID = $ADV_ID $strSqlSearch GROUP BY D.ADV_ID, D.DATE_STAT $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_adv_day D WHERE D.ADV_ID = $ADV_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; }