Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consulta MySQL con parámetros variables

Estas en el tema de Consulta MySQL con parámetros variables en el foro de Mysql en Foros del Web. Tengo un formulario para que el usuario pueda buscar según id, dni, teléfono o email. El problema está en que cuando realizo la consulta (la ...
  #1 (permalink)  
Antiguo 24/03/2015, 21:06
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Consulta MySQL con parámetros variables

Tengo un formulario para que el usuario pueda buscar según id, dni, teléfono o email.

El problema está en que cuando realizo la consulta

(la variables PHP en wl WHERE las sustituí por '?' ya que este es el foro de MySQL)
Código SQL:
Ver original
  1. SELECT
  2.                             id_users,
  3.                             name,
  4.                             surnames,
  5.                             dni,
  6.                             phone,
  7.                             email,
  8.                             delivery,
  9.                             trouble,
  10.                             notes,
  11.                             datetime,
  12.                             message,
  13.                             done
  14.                         FROM
  15.                             users
  16.                         WHERE
  17.                             id_users = ? OR
  18.                             dni = ? OR
  19.                             phone = ? OR
  20.                             email = ?

Me devuelve el valor buscado y todos los resultados en que alguno de los campos sea NULL y sólo quiero que arroje por los valores enviados.

No necesito código, solamente una referencia.
¿Hay alguna manera de hacer lo que estoy buscando, cómo?

Saludos! :D
__________________
Ayúdame a hacerlo por mi mismo.
  #2 (permalink)  
Antiguo 24/03/2015, 21:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MySQL con parámetros variables

Si la cantidad de datos es variable, la consulta debe crearse dinámicamente, poniendo programáticamente aquellas condiciones que efectivamente están ingresando en el formulario.
No puedes evitar que el OR opere si usas una consulta de sintaxis estática con valores variables.
Recuerda en que el OR es una disyunción, y te devolverá los registros donde al menos una de las condiciones separadas por OR se cumpla... ignorando la evaluación resto de las que no se cumplen. Es parte del funcionamiento de la lógica proposicional.
Si quieres resolverlo en SQL, tendrás que implementarlo todo por medio de un SP, pero no te lo aconsejo: Terminarías usando sentencias preparadas que logren la misma lógica que crearla por programación, o bien generando 16 consultas, para las 16 combinaciones de condiciones posibles.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/03/2015, 21:59
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Consulta MySQL con parámetros variables

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si la cantidad de datos es variable, la consulta debe crearse dinámicamente, poniendo programáticamente aquellas condiciones que efectivamente están ingresando en el formulario.
No puedes evitar que el OR opere si usas una consulta de sintaxis estática con valores variables.
Recuerda en que el OR es una disyunción, y te devolverá los registros donde al menos una de las condiciones separadas por OR se cumpla... ignorando la evaluación resto de las que no se cumplen. Es parte del funcionamiento de la lógica proposicional.
Si quieres resolverlo en SQL, tendrás que implementarlo todo por medio de un SP, pero no te lo aconsejo: Terminarías usando sentencias preparadas que logren la misma lógica que crearla por programación, o bien generando 16 consultas, para las 16 combinaciones de condiciones posibles.
Era lo que me temía, pero cómo no soy un experto en MySQL por eso decidí por preguntar. Había pensado en usar condicional IF, de manera que si el valor no es nulo agregue a la consulta (del lado del servidor) un parámetro más.
__________________
Ayúdame a hacerlo por mi mismo.
  #4 (permalink)  
Antiguo 24/03/2015, 22:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MySQL con parámetros variables

Es lo que se suele hacer, pero se hace programando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 24/03/2015, 22:34
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Consulta MySQL con parámetros variables

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Es lo que se suele hacer, pero se hace programando.
Creo que ya se me ocurrió la manera de hacerlo con el CGI.

Muchísimas gracias gnzsoloyo!! :D
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: campo, php, select, sql, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:28.