PHP - Consulta Select en PHP sin conocer los filtros requeridos en la clausula WHERE

 
Vista:
Imágen de perfil de Luis Saavedra

Consulta Select en PHP sin conocer los filtros requeridos en la clausula WHERE

Publicado por Luis Saavedra (5 intervenciones) el 17/02/2017 21:18:32
Saludos!

Estoy haciendo un sistema orientado a la web con php y entre las funcionalidades del sistema esta la consulta de un documento, el sistema me mostrara un formulario con varios filtros (input) para realizar dicha consulta, sin embargo los filtros no son obligatorios y el usuario solo ingresara el filtro que desee para realizar la consulta.

Mi pregunta es: ¿Cual es la mejor forma de realizar esta consulta cuando no conozco de antemano que filtros voy a usar para la clausula WHERE de la sentencia SELECT?

Lo que se me ocurre es verificar que filtros no se encuentran vacíos y de esta forma almacenar en una cadena mi consulta select e ir concatenando los campos correspondientes a los filtros que se ingresen y asi obtener mi setencia SELECT.

Quiero saber si esta la forma correcta de hacerlo, o me recomienda otra forma que sea más sencilla o técnicamente más eficiente?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de José Luis

Consulta Select en PHP sin conocer los filtros requeridos en la clausula WHERE

Publicado por José Luis (21 intervenciones) el 18/02/2017 10:03:10
Hola Luis.

En principio yo distingo dos cosas diferentes.
Por un lado SELECT selecciona los campos que se van a mostrar.
Por otro lado WHERE indica las condiciones o filtros de la consulta.
Por tanto son independientes. Es decir, podrás mostrar campos que estén o no estén en los filtros.

En cuanto a la forma de hacerlo lo dices bien:
Primero verificar que el usuario seleccionó un filtro.
Segundo montar la cadena, ejemplo tabla.campo = input_usuario.
Tercero, una vez tengas todas las cadenas montadas concatenar el WHERE.

Espero haberte ayudado en vez de liarte!
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar