Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2011, 21:35
Avatar de morfasto
morfasto
 
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 13 años, 1 mes
Puntos: 8
Armar restriccion para consulta con GET del formulario

Hola, que tal?

Hice una pagina en la que muestro fotos cargando la info de la base de datos, tambien he hecho un filtrado de informacion enviando un formulario via GET.

El problema es que creo que estoy haciendo algo mal ya que mi solucion para recoger la informacion del formulario y procesarla para armar la restriccion para hacer la consulta a la base de datos es demasiado larga, tal vez hay una manera mucho mas sencilla de hacerlo, pero no se me ocurre.

Queria saber si ustedes me podrian ayudar a hacerlo mucho mas sensillo.

Este es mi codigo:
Código PHP:
<?php
if(isset($_GET['titulo'])){
    
$buscar_titulo=$_GET['titulo'];
}else{
    
$buscar_titulo=NULL;
}
if(isset(
$_GET['autor'])){
    
$buscar_autor=$_GET['autor'];
}else{
    
$buscar_autor=NULL;
}
if(isset(
$_GET['formato'])){
    
$buscar_formato=$_GET['formato'];
}else{
    
$buscar_formato=NULL;
}
if(isset(
$_GET['visitas'])){
    
$buscar_visitas=$_GET['visitas'];
}else{
    
$buscar_visitas=NULL;
}
if(isset(
$_GET['categoria'])){
    
$buscar_categoria=$_GET['categoria'];
}else{
    
$buscar_categoria=NULL;
}
if(isset(
$_GET['tamano'])){
    
$buscar_tamano=$_GET['tamano'];
}else{
    
$buscar_tamano=NULL;
}
$restriccion="";
if(
$buscar_titulo!=NULL){
    
$restriccion=" titulo like '".$buscar_titulo."%'";
    if(
$buscar_autor!=NULL){
        
$restriccion=$restriccion." and autor = '".$buscar_autor."'";
        if(
$buscar_formato!=NULL){
            
$restriccion=$restriccion." and formato = '".$buscar_formato."'";
            if(
$buscar_visitas!=NULL){
                
$restriccion=$restriccion." and visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }else{
            if(
$buscar_visitas!=NULL){
                
$restriccion=$restriccion." and visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }
    }else{
        if(
$buscar_formato!=NULL){
            
$restriccion=$restriccion." and formato = '".$buscar_formato."'";
            if(
$buscar_visitas!=NULL){
                
$restriccion=$restriccion." and visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }else{
            if(
$buscar_visitas!=NULL){
                
$restriccion=$restriccion." and visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }
    }
}else{
    if(
$buscar_autor!=NULL){
        
$restriccion=" autor = '".$buscar_autor."'";
        if(
$buscar_formato!=NULL){
            
$restriccion=$restriccion." and formato = '".$buscar_formato."'";
            if(
$buscar_visitas!=NULL){
                
$restriccion=$restriccion." and visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }else{
            if(
$buscar_visitas!=NULL){
                
$restriccion=$restriccion." and visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }
    }else{
        if(
$buscar_formato!=NULL){
            
$restriccion=" formato = '".$buscar_formato."'";
            if(
$buscar_visitas!=NULL){
                
$restriccion=$restriccion." and visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }else{
            if(
$buscar_visitas!=NULL){
                
$restriccion=" visitas >= '".$buscar_visitas."'";
                if(
$buscar_categoria!=NULL){
                    
$restriccion=$restriccion." and categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }
            }else{
                if(
$buscar_categoria!=NULL){
                    
$restriccion=" categoria = '".$buscar_categoria."'";
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=$restriccion." and tamano >= '".$buscar_tamano."'";
                    }
                }else{
                    if(
$buscar_tamano!=NULL){
                        
$restriccion=" tamano >= '".$buscar_tamano."'";
                    }
                }
            }
        }
    }
}
if(!isset(
$_GET['resultados_pagina']))
{
    
$_GET['resultados_pagina']=10;
}
if(isset(
$_GET['pagina'])){
    
$pagina$_GET['pagina'];
}else{
    
$pagina=1;
}
$limite " LIMIT ".($pagina-1)*$_GET['resultados_pagina'].",".$_GET['resultados_pagina'];
$ruta "SELECT foto_id, tamano, categoria, visitas, autor, titulo, formato FROM fotos WHERE $restriccion ORDER BY fecha DESC $limite";
?>
Alguna idea?

Muchisimas gracias!