- Модуль: vote
- Путь к файлу: ~/bitrix/modules/vote/classes/general/answer.php
- Класс: CAllVoteAnswer
- Вызов: CAllVoteAnswer::GetList
static function GetList($QUESTION_ID, $by="s_c_sort", $order="asc", $arFilter=array(), $arAddParams = array())
{
global $DB;
$QUESTION_ID = intval($QUESTION_ID);
$arSqlSearch = Array();
$arFilter = (is_array($arFilter) ? $arFilter : array());
foreach ($arFilter as $key => $val)
{
if(empty($val) || $val === "NOT_REF")
continue;
$key = strtoupper($key);
switch($key)
{
case "ID":
case "FIELD_TYPE":
$match = ($arFilter[$key."_EXACT_MATCH"]=="N" ? "Y" : "N");
$arSqlSearch[] = GetFilterQuery("A.".$key, $val, $match);
break;
case "MESSAGE":
case "FIELD_PARAM":
$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" ? "N" : "Y");
$arSqlSearch[] = GetFilterQuery("A.".$key, $val, $match);
break;
case "ACTIVE":
$arSqlSearch[] = ($val=="Y") ? "A.ACTIVE='Y'" : "A.ACTIVE='N'";
break;
}
}
$order = ($order!="desc" ? "asc" : "desc");
$by = (($by == "s_id" || $by == "s_counter") ? $by : "s_c_sort");
if ($by == "s_id") $strSqlOrder = " ORDER BY A.ID";
elseif ($by == "s_counter") $strSqlOrder = " ORDER BY A.COUNTER";
else $strSqlOrder = " ORDER BY A.C_SORT";
$strSqlOrder .= " ".$order;
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$strSqlFrom = "FROM b_vote_answer A WHERE ".$strSqlSearch." and A.QUESTION_ID=".$QUESTION_ID."";
$strSql = "SELECT A.* ".$strSqlFrom.$strSqlOrder;
if ($arAddParams["nTopCount"] > 0)
{
$arAddParams["nTopCount"] = intval($arAddParams["nTopCount"]);
if ($DB->type=="MSSQL")
$strSql = "SELECT TOP ".$arAddParams["nTopCount"]." A.* ".$strSqlFrom.$strSqlOrder;
else if ($DB->type=="ORACLE")
$strSql = "SELECT * FROM(".$strSql.") WHERE ROWNUM<=".$arAddParams["nTopCount"];
else
$strSql = "SELECT A.* ".$strSqlFrom.$strSqlOrder." LIMIT 0,".$arAddParams["nTopCount"];
}
else if (is_set($arAddParams, "bDescPageNumbering"))
{
$db_res = $DB->Query("SELECT COUNT(A.ID) as CNT ".$strSqlFrom, false, "File: ".__FILE__."
Line: ".__LINE__);
$iCnt = (($db_res && ($ar_res = $db_res->Fetch())) ? intval($ar_res["CNT"]) : 0 );
$db_res = new CDBResult();
$db_res->NavQuery($strSql, $iCnt, $arAddParams);
return $db_res;
}
return $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
}