Cita:
Iniciado por isabelramirezmontoya Chicos me dan una manito por favor si es posible
Tengo una base de datos en la cual realizo consultas o querys. Para hacer las consultas tengo un formulario con 2 select para filtrar la consulta.
Los select son color_prenda (rojo,azul,amarillo o todos) y size color_prenda (grande, medio, pequeño o todos)
Me da como resultado 4 consultas diferentes asi
Código HTML:
Ver originalsi color_prenda = todos AND size = todas
SELECT * FROM articulos
sino color_prenda = todos AND size <> todas
SELECT * FROM articulos WHERE size = size_prenda
sino color_prenda <> todos AND size = todas
SELECT * FROM articulos WHERE color = color_prenda
sino color_prenda <> todos AND size <> todas
SELECT * FROM articulos WHERE color = color_prenda AND size = size_prenda
fin-sino
¿Puedo simplificar y dinamizar este pequeño script en una sola consulta?
Lo pregunto por que necesito hacer uno con 6 select y no quiero hacer 36 consultas diferentes
Gracias
no postees código sql en el foro de php. a mi también me ha ocurrido pero se va aprendiendo a ir directo a los problemas. en tu caso hubiera bastado preguntar cómo hacer una consulta dinámica.
sí, puedes y debes hacerla dinámica.
para ello lo único que necesitas es algo parecido a esto
Código PHP:
Ver original//con OR IS NOT NULL le indicas a mysql que según el where es o el valor de la
//variable y si esta no coincide con ninguno entonces que escoja según el segundo caso
//si ninguno coincide entonces te devolverá todos los resultados que contengan algo excepto la nada, null
SELECT * FROM articulos WHERE color = ".$color_prenda." OR color IS NOT NULL AND size = ".$boton_size_prenda." OR size IS NOT NULL";
ya a partir de ahí tienes que ver cómo dar valor a esas variables, que supongo que esas consultas las tendrás dentro de una función o un método de una clase.
intentalo por tu cuenta.