Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/02/2010, 10:00
Avatar de xcoltx
xcoltx
 
Fecha de Ingreso: diciembre-2008
Mensajes: 65
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Filtrado acumulativo de resultados de SQL

Bueno quiero aprovechar de postear :D

no entiendo bien la pregunta..
1.- ¿el problema del filtro son los select de las opciones de filtro?
2.- ¿o son la acumulacion de AND's en una variable de sql?

porque si es la 2 opcion tengo una solucion


mira yo lo hago asi:

(suponiendo que al menos 1 filtro es obligatorio)
supongamos que se tienen 3 opciones de filtros y se envian todas:

Código PHP:
// hagamos como que llegaron de un $_GET
$marca="toyota"
$año="2007";
$color="azul";

//entonces empiezas a crear tu consulta:

$sql "select * from automoviles where ";

if(
$marca){ 

       
$sql.= "marca = $marca";  //si hay variable $marca agregar a la consulta
 
         //si ademas existen las variable $año y $color entonces agregar con "AND"

       
if($año)  $sql.= " and año= $año";   
       if(
$color$sql.=" and color= $color"
       
       }

else {  
//cuando $marca no existe pero $año o $color si estan

        //reviso si hay variable $año
        
if($año) { 

              
$sql.= "año= $año";        //agrego $año a la busqueda sql (sin AND)
              
if($color)  $sql.= " and color= $color";  //si adema esta $color, agregar con AND
        
               
}
       
        
//en caso que no haya $año, comprobar si existe $color para agregar (con AND)
        
else if($color$sql.= "color= $color";

       } 
Disculpa si lo hice muy comentado xD .