Foros del Web » Programando para Internet » PHP »

Usar Select Con Or

Estas en el tema de Usar Select Con Or en el foro de PHP en Foros del Web. Hola quisiera saber si puedo usar select con or: Ahora explico tengo este codigo SELECT * FROM poblacion WHERE user='".$user."' and accion=3 and ano<'".$ano."' or ...
  #1 (permalink)  
Antiguo 17/12/2007, 14:10
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Usar Select Con Or

Hola quisiera saber si puedo usar select con or:

Ahora explico tengo este codigo

SELECT * FROM poblacion WHERE user='".$user."' and accion=3 and ano<'".$ano."' or mes<'".$mes."' or dia<'".$dia."' or horas<'".$hora."' or minutos<'".$min."'";

pero no me lo detecta como deve ser, me agarra cualquiera que no tenga accion3, que puede ser?
  #2 (permalink)  
Antiguo 17/12/2007, 14:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Usar Select Con Or

Prueba a agrupar con parentesis.
  #3 (permalink)  
Antiguo 17/12/2007, 14:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Re: Usar Select Con Or

mira le cambie accion= al principio y al parecer no me da error pero no se si sea lo correcto deja pruebo con parentesis
  #4 (permalink)  
Antiguo 17/12/2007, 15:06
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
De acuerdo Re: Usar Select Con Or

Disculpa pero para que colocas dobles comillas solo deberia ser comilla simple y tampoco coloques puntos creo que tal vez sera eso.. ya que '$ano'

"SELECT * FROM poblacion WHERE user='$user' and accion=3 and ano<'$ano' or mes<'$mes' or dia<'$dia' or horas<'$hora' or minutos<'$min'"

Las comillas dobles son para texto y las comillas simples son para que en vez de colocarte texto te coloque el valor de la variable... espero te sirva..


Salu2..
  #5 (permalink)  
Antiguo 17/12/2007, 15:13
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Usar Select Con Or

Cita:
Iniciado por agressor Ver Mensaje
[...]
Las comillas dobles son para texto y las comillas simples son para que en vez de colocarte texto te coloque el valor de la variable...
[...]
Al revés

http://www.gamarod.com.ar/articulos/las_variables_en_php.asp

Un saludo,
  #6 (permalink)  
Antiguo 17/12/2007, 15:55
Avatar de Solid  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 180
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: Usar Select Con Or

El tema comillas simples, comillas dobles, no importa realmente cual se use para cual, mientras que se las use en la forma correcta (una como caracter, otra para delimitar la cadena) a lo largo de una misma expresión, e inclusive se puede ingresar como un caracter especial...es decir:

echo "\"";

me daría una salida

"

En cualquier caso, en cualquier lenguaje, las condiciones se evaluan de izquierda a derecha, según sus anidamientos y luego se evalua el resultado final (siendo esta la condición final real tomada en cuenta).

Lo que quiere decir que si bien tu código esta bien "escrito", es decir, su sintaxis es correcta, probablemente esté mal la lógica de la misma y por eso no funciona correctamente.

De hecho, desde ya te digo que seguro hay algo mal ahí porque es medio inocuo utilizar ANDs y ORs de esa manera, es decir, en una misma "anidación" es totalmente inutil la presencia de ANDs y ORs ya que al final de cuentas la condición final estará más bien determinada por los ORs.

Seguramente te estén faltando unos cuantos parentesis por ahí, si lo que querías era, por ejemplo, controlar el usuario, la acción y que se diera CUALQUIERA de las condiciones de fecha, entonces tendrías que haber escrito...

SELECT * FROM poblacion WHERE user='".$user."' and accion=3 and ano<'".$ano."' AND (mes<'".$mes."' or dia<'".$dia."' or horas<'".$hora."' or minutos<'".$min."')";

De esa manera, evaluarías de esta manera

condicion_1 Y condicion_2 Y condición_3

la condición 3 es compuesta por otra condición en si misma (una condición anidada), entonces primero se evaluaría esta condición anidada, compuesta de ORs, en la que al menos una de las condiciones debe ser cierta para que la condición anidada en su totalidad sea cierta. Luego ese valor se lo utiliza en la evaluación final con las otras 2 condiciones y listo, si las 3 condiciones son ciertas, entonces incluye ese registro en los resultados.
__________________
Just because I rock doesn't mean I'm stone
  #7 (permalink)  
Antiguo 17/12/2007, 16:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Re: Usar Select Con Or

si lo se lo de las comillas pero me daban muchso problemas y los puse asi y me dejaron de dar problemas, no creo que perjudique asi que mejor asi las dejo...

Y al pareser si funciona con parentesis

Gracias :D
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 03:31.