Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2015, 14:16
fralimo
 
Fecha de Ingreso: agosto-2015
Mensajes: 34
Antigüedad: 9 años, 3 meses
Puntos: 0
buscador avanzado duda: consulta sql

Buenos dias, mirar tengo 2 formularios checkbox con 10 palabras cada uno, de esos 2 formularios puedo seleccionar como maximo 3 palabras en cada uno ( es decir 6 variables en total, una para cada palabra)


como tengo 6 variables y es de buscar si tienen coincidencia con una tabla de 20 columnas, como puedo hacerlo?

porque una vez puedo tener 1 variable solo seleccionada, otra 3, otra 5 otra 6 (como maximo he de recordar)

y eso genera diferentes consultas....

os pongo un ejemplo que tengo hecho (aqui se supone que la variable 1 y 2 !=0, pero la 3 es 0, luego del segundo checkbox la primera variable es distinta de 0 pero la 2 y 3 es 0, los adjetivos simpatico etc etc son columnas de un perfil de personalidad

Código PHP:
Ver original
  1. $sql = "SELECT * FROM basico2 WHERE  (simpatico LIKE '$var1' OR responsable LIKE '$var1' OR positivo LIKE '$var1' OR emprendedor LIKE '$var1' OR aventurero LIKE '$var1' OR independiente LIKE '$var1' OR ambicioso LIKE '$var1' OR inteligente LIKE '$var1' OR energico LIKE '$var1'  OR interesante LIKE '$var1' OR trabajador LIKE '$var1' OR apasionado LIKE '$var1' OR excentrico LIKE '$var1' OR maduro LIKE '$var1' OR alegre LIKE '$var1' OR tolerante LIKE '$var1' OR divertido LIKE '$var1' OR noble LIKE '$var1' OR sincero LIKE '$var1' OR humilde LIKE '$var1' OR deportista LIKE '$var1' ) AND
  2.    
  3. (simpatico LIKE '$var2' OR responsable LIKE '$var2' OR positivo LIKE '$var2' OR emprendedor LIKE '$var2' OR aventurero LIKE '$var2' OR independiente LIKE '$var2' OR ambicioso LIKE '$var2' OR inteligente LIKE '$var2' OR energico LIKE '$var2'  OR interesante LIKE '$var2' OR trabajador LIKE '$var2' OR apasionado LIKE '$var2' OR excentrico LIKE '$var2' OR maduro LIKE '$var2' OR alegre LIKE '$var2' OR tolerante LIKE '$var2' OR divertido LIKE '$var2' OR noble LIKE '$var2' OR sincero LIKE '$var2' OR humilde LIKE '$var2' OR deportista LIKE '$var2' )   AND            
  4.  
  5.  
  6. (detallista LIKE '$var11' OR leal LIKE '$var11' OR sensible LIKE '$var11' OR atento LIKE '$var11' OR autosuficiente LIKE '$var11'OR romantico LIKE '$var11' OR dulce LIKE '$var11' OR planificador LIKE '$var11' OR cariñoso LIKE '$var11' OR comprensivo LIKE '$var11' OR puntual LIKE '$var11' OR caballero LIKE '$var11') ";
  7. }

la consulta busca los usuarios con el contenido de personalidad especificado en las variables

podeis ayudarme a hacer esta consulta mas eficiente y que no tenga que hacer una para cada una de las 3^3 combinaciones....


perdonar si me expreso mal.... pero es complicado