Beispiel #1
0
function CalcSearchParam($webreportsMode = false)
{
    global $sessPrefix, $strSQL, $strTableName;
    $sWhere = "";
    if (!$webreportsMode) {
        $cipherer = new RunnerCipherer($strTableName);
        $params = array();
        $params['tName'] = $strTableName;
        $params['cipherer'] = $cipherer;
        $params['searchFieldsArr'] = WRGetFieldsList($strTableName);
        $searchClauseObj = new SearchClause($params);
        $searchClauseObj->parseRequest();
        return $searchClauseObj->buildItegratedWhere(WRGetFieldsList($strTableName));
    }
    if (@$_SESSION[$sessPrefix . "_search"] == 2) {
        foreach (@$_SESSION[$sessPrefix . "_asearchfor"] as $f => $sfor) {
            $strSearchFor = trim($sfor);
            $strSearchFor2 = "";
            $type = @$_SESSION[$sessPrefix . "_asearchfortype"][$f];
            if (array_key_exists($f, @$_SESSION[$sessPrefix . "_asearchfor2"])) {
                $strSearchFor2 = trim(@$_SESSION[$sessPrefix . "_asearchfor2"][$f]);
            }
            if ($strSearchFor != "" || true) {
                if (!$sWhere) {
                    if ($_SESSION[$sessPrefix . "_asearchtype"] == "and") {
                        $sWhere = "1=1";
                    } else {
                        $sWhere = "1=0";
                    }
                }
                $strSearchOption = trim($_SESSION[$sessPrefix . "_asearchopt"][$f]);
                $where = GenericStrWhereAdv(@$_SESSION[$sessPrefix . "_asearchtable"][$f], $f, $strSearchFor, $strSearchOption, $strSearchFor2, $type);
                if ($where) {
                    if ($_SESSION[$sessPrefix . "_asearchnot"][$f]) {
                        $where = "not (" . $where . ")";
                    }
                    if ($_SESSION[$sessPrefix . "_asearchtype"] == "and") {
                        $sWhere .= " and " . $where;
                    } else {
                        $sWhere .= " or " . $where;
                    }
                }
            }
        }
    }
    return $sWhere;
}