![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
17/12/2007, 15:55
|
![Avatar de Solid](http://static.forosdelweb.com/customavatars/avatar30021_1.gif) | | | Fecha de Ingreso: enero-2003 Ubicación: Argentina
Mensajes: 180
Antigüedad: 22 años 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 |