1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| public function recursive($i, $criterias, $operateurs){
if($i == (count($operateurs)-1) && ($i>0 && $operateurs[$i-1] == 'ET')){
return $criterias[$i].' ';
}else if($i == (count($operateurs)-1) && ($i>0 && $operateurs[$i-1] == 'OU' || $operateurs[$i-1] == 'SAUF')){
return $criterias[$i].' )';
}else if($i == (count($operateurs)-1) && $i==0){
return $criterias[$i].' ';
}else if($i == 0 && $operateurs[$i] == 'OU'){
return ' ('.$criterias[$i].' OR '.$this->recursive($i+1, $criterias, $operateurs);
}else if($i == 0 && $operateurs[$i] == 'SAUF'){
return ' ('.$criterias[$i].' AND '.$this->recursive($i+1, $criterias, $operateurs);
}else if($i == 0 && $operateurs[$i] == 'ET'){
return ' '.$criterias[$i].' AND '.$this->recursive($i+1, $criterias, $operateurs);
}else{
if($operateurs[$i-1] == 'ET' && $operateurs[$i] == 'ET'){
return ' '.$criterias[$i].' AND '.$this->recursive($i+1, $criterias, $operateurs);
}else if($operateurs[$i-1] == 'ET' && $operateurs[$i] == 'OU'){
return ' ('.$criterias[$i].' OR '.$this->recursive($i+1, $criterias, $operateurs);
}else if($operateurs[$i-1] == 'OU' && $operateurs[$i] == 'SAUF'){
return ' ('.$criterias[$i].' OR '.$this->recursive($i+1, $criterias, $operateurs);
}else if($operateurs[$i-1] == 'ET' && $operateurs[$i] == 'SAUF'){
return ' ('.$criterias[$i].' AND '.$this->recursive($i+1, $criterias, $operateurs);
}else if($operateurs[$i-1] == 'SAUF' && $operateurs[$i] == 'OU'){
return ' '.$criterias[$i].') OR '.$this->recursive($i+1, $criterias, $operateurs);
}else if($operateurs[$i-1] == 'SAUF' && $operateurs[$i] == 'ET'){
return ' '.$criterias[$i].') AND '.$this->recursive($i+1, $criterias, $operateurs);
}else if($operateurs[$i-1] == 'OU' && $operateurs[$i] == 'ET'){
return ' '.$criterias[$i].') AND '.$this->recursive($i+1, $criterias, $operateurs);
}else if($operateurs[$i-1] == 'OU' && $operateurs[$i] == 'OU'){
return ' '.$criterias[$i].' OR '.$this->recursive($i+1, $criterias, $operateurs);
}
}
} |
Partager