Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/04/2013, 18:16
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: error en consulta sql

Cita:
no me funciona, lo que intento que me muestre la consulta es todos los usuarios con el nombre andres y edad 25 pero en este caso el estado no le paso ningun valor
Por empezar, la consulta no tiene ningún error, pero no tienes ningún registro que cumpla con los tres parámetros que pones, y en esto tienes que tener claro una cosa: cuando pones AND los parámetros son obligatorios, no opcionales. Si no se cumple uno, no devuelve nada.
Cita:
osea que en esta consulta tendria que ignorar el estado dependientemente de su contenido
No, no tiene que ingorarlo, porque eso no sería AND, sería OR.
Cita:
esto lo hago con programacion ya que los valores se pasan a traves de un formulario, pero mi duda es esa que el campo edad y estado pueden o no tener un valor en el momento de hacer la consulta
En ese caso simplemente estás construyendo mal la consulta.
Cuando tienes varios parámetros entrantes por formulario, pero no todos llegan con datos, lo que se hace es excluir en la construcción de la consulta la parte del SQL que correspondería al valor faltante.
Es decir, deberías haber mandado esto:
Código MySQL:
Ver original
  1. FROM `usuarios`
  2. WHERE `nombre` LIKE '%andres%'
  3.     AND `edad` =25
¿Como se hace eso?
Validando los datos que el usuario ingresa y agregando el parametro sólo si contiene un dato a usar.

Ahora, si bien es posible usar OR para todos los casos, eso puede devolverte resultados que no son los deseados, así que no lo recomendaría.

Finalmente, el tema de cómo crear el código para construir la consulta no es tema de este foro. Pregunta cómo se hace en el foro del lenguaje que usas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)