Добрый день.
Сейчас пишу свой API, и столкнулся с проблемой по обработке параметров, которые будут подставляться в SQL-запрос.
Недавно смотрел VK API, в каждом их методе доступно много параметров. Пусть таких параметров N штук, а в запросе может применяться от 1 до N, тогда количество возможных сочетаний равно сумме n!/(n−k)!*k!, где k от 1 до N.
Например, вариант для 3 параметров:
if(isset($_GET['exams']) && isset($_GET['qualification']) && isset($_GET['formEdication'])){
}
else if(isset($_GET['exams']) && isset($_GET['qualification']) && !isset($_GET['formEdication'])){
}
else if(!isset($_GET['exams']) && isset($_GET['qualification']) && isset($_GET['formEdication'])){
}
else if(isset($_GET['exams']) && !isset($_GET['qualification']) && isset($_GET['formEdication'])){
}
else if(isset($_GET['exams']) && isset($_GET['qualification']) && !isset($_GET['formEdication'])){
}
else if(!isset($_GET['exams']) && !isset($_GET['qualification']) && isset($_GET['formEdication'])){
}
else if(isset($_GET['exams']) && !isset($_GET['qualification']) && !isset($_GET['formEdication'])){
}
else if(!isset($_GET['exams']) && isset($_GET['qualification']) && !isset($_GET['formEdication'])){
}
Чем больше будет параметров, тем больше получится вариантов запроса.
Из этого следует вопрос - как можно сформировать запрос, не делая огромных вложенных конструкций из условных блоков?