Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia !
Possuo uma classe 'imoveis' no meu sistema, e nessa classe preciso de uma função responsável por disseminar uma busca através dos parâmetros passados na URL.
O algoritmo até funciona 100%, o problema é que como a busca pode passar até 40 parâmetros (+ ou -), a função fica ENORME (+300 linhas), dificultando bastante a manutenção, e pelo que até o próprio Netbeans diz, a quantidade de linhas ideal para uma função são 20.
Existiria alguma forma de simplificar essa lógica resultando na redução do código ?
Abaixo um pequeno trecho:
public function buscar($LIMIT){
$arr = array();
$_STRING = "SELECT * FROM imv_ofertas INNER JOIN imv_usuarios ON imv_usuarios.id_usuario = inv_ofertas.id_anunciante ";
# ---------------------------------------------------
# Verifica se o parâmetro foi setado e se não está em branco
if(isset($_GET['estado']) && (is_array($_GET['estado']) ? !empty(array_filter($_GET['estado'])) : !empty($_GET['estado']))){
# Em caso de multiplas opções
if(is_array($_GET['estado'])){
$_STRING .= "INNER JOIN cepbr_estado ON imv_usuarios.estado_usuario IN('".implode("', '",$this->str_bloq($_GET['estado']))."') AND imv_estado.id_estado = imv_usuarios.estado_usuario ";
}
else {
$_STRING .= "INNER JOIN imv_estado ON imv_usuarios.estado_usuario = :estado AND imv_estado.id_estado = :estado ";
$arr[':estado'] = (int) $_GET['estado'];
}
}
}
Se alguém puder ajudar, agradeço.
Carregando comentários...