Код: Выделить всё
if (!isset($_SESSION['filter_'.$c])) { // if its the first filter inserted
if ($operator == "NOT") {
@$_SESSION['query_first_'.$c] = "NOT $selected_condition";
} else {
@$_SESSION['query_first_'.$c] = "$selected_condition";
}
}
if ($operator == "OR" || $operator == 'OR NOT' || $operator == 'AND' || $operator == 'AND NOT') {
@$current_filter = "$operator $selected_condition";
@$_SESSION['query_'.$c] = " " . @$_SESSION['query_'.$c] . @$current_filter;
}
@$write_first = $_SESSION['query_first_'.$c];
@$write_last = $_SESSION['query_'.$c];
$_SESSION['filter_'.$c] = @$write_first . @$write_last;
выход будет выглядеть примерно так:
Код: Выделить всё
WHERE condition AND condition OR NOT condition AND condition OR condition OR condition
Код: Выделить всё
WHERE condition AND (condition OR NOT condition) AND (condition OR condition OR condition)
Из-за моих ограниченных знаний Regex мне удалось придумать только это:
Код: Выделить всё
(?
Подробнее здесь: [url]https://stackoverflow.com/questions/78794915/detecting-or-operator-sequences-and-wrapping-their-content-in-a-parenthesis-when[/url]