![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Precisamente por eso es la idea de consruir al vuelo la consulta. Claro que tendrás que utilizar algunos condicionales debido al "valor" todos pero nunca tantos cómo 4*4*4*4.
// Saludos |
|
#2
|
||||
|
||||
|
Bueno si tienes razón, no serían las 256, seria solo en el caso en que se seleccionara la opcion todos en cualquiera de las 4 opciones y sus combinaciones pero solo en las que sea seleccionada la opción "Todos"... voy a ver
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
|
#3
|
||||
|
||||
|
Me parece que te estás liando demasiado debido a que piensas que hay que tratar muchos casos pero en realidad no es así.
Al construir la consulta SQL tienes que fijarte cómo contribuye cada combo a la condición where. Cada combo puede contribuir de dos maneras, no 4, ni 5 ni 7, sólo dos:
Es decir, si un combo tiene 'todos' por texto, no contribuye a la consulta pues quiere decir que no impones ninguna condición sobre él. Esto implica cuatro condicionales- uno tras otro. La construcción del condicional where (es decir, las sentencias después de where) es un poco enredada debido a que las condiciones de los distintos combos deben estar unidas por un conector and y por cada combo debes fijarte si realmente hay necesidad de poner and: y necesitarás uno de estos bloques por cada combo. Con esto sería más que suficiente pero como a mi me da flojera leer este tipo de código te lo voy a complicar un poco: La extraña condición '1 = 1' es una condición que siempre se cumple por lo que el efecto es el mismo: no imponer condición alguna sobre el campo. En principio parece una complicación innecesaria (y quizá lo sea) pero el hecho de que cada combo siempre contribuya con algo me permite simplificar la lógica de cuándo agregar el and pues sé de fijo que lo agrego después del primer, segundo y tercer combo quedando así ya con todos los combos:
Pero más aún, como los cuatro condicionales son esencialmente iguales podemos definir una función:
que los construya genéricamente con lo cual reducimos el código a: Y listo. Ya sólo tienes que agregar esto al resto de la cadena SQL, por ejemplo:
Yo colocaría esto en un evento OnChange común a los cuatro combos. // Saludos |
|
#4
|
||||
|
||||
|
Yo lo veo mas sencillo tadavia...
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
||||
|
||||
|
Pues qué te digo, aún con el truco me gusta más el mío:
En gustos se rompen géneros ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|