Foros del Web » Programando para Internet » PHP »

filtrado de datos problema con condiciones!

Estas en el tema de filtrado de datos problema con condiciones! en el foro de PHP en Foros del Web. Hola al foro, tengo un problema con unas condiciones para hacer un filtrado de datos. Por un lado tengo esta condición: if ($_GET['Grupo']=='mas' & $_GET['selectvalor']==1 ...
  #1 (permalink)  
Antiguo 11/10/2006, 14:04
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
filtrado de datos problema con condiciones!

Hola al foro, tengo un problema con unas condiciones para hacer un filtrado de datos.

Por un lado tengo esta condición:
if ($_GET['Grupo']=='mas' & $_GET['selectvalor']==1 or $_GET['selectvalor']==2 & !empty($_GET['fecha']) & $_GET['muni']=='no' & $_GET['zona1']=='no' & !empty($_GET['hastap'])){

Luego tengo esta otra:
else if ($_GET['Grupo']=='mas' & $_GET['selectvalor']==1 or $_GET['selectvalor']==2 & !empty($_GET['fecha']) & $_GET['muni']!='no' & $_GET['zona1']=='no' & !empty($_GET['hastap'])){

como se puede ver, las dos tienen diferencias pero cuando en el formulario de envío selecciono los campos como para que se cumpla la segunda (2) condicion, siempre se cumple la primera. Si alguien me hecha un cable , se lo agradezco.

Saludos.
  #2 (permalink)  
Antiguo 11/10/2006, 15:02
 
Fecha de Ingreso: septiembre-2006
Mensajes: 32
Antigüedad: 17 años, 7 meses
Puntos: 0
separa prioridades con ( ), asi vas a saber donde esta fallando la evaluacion
  #3 (permalink)  
Antiguo 11/10/2006, 18:58
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
como es eso?

Hola, te refieres a separar cada una de las condiciones.
He comenzado de nuevo con todo el script pero me sigue dando este tipo de fallos. El tema es que tengo un formulario de busqueda algo complejo ya que son 5 campos y se debería poder filtrar por todas las combinaciones posibles. yo siempre lo he heho mediante condiciones, osea que según las variables que recibo del formulario, realizo la consulta a la BD. Mi pregunta es.. se puede hacer de alguna otra forma esto?.
Saludos.
  #4 (permalink)  
Antiguo 11/10/2006, 20:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Hola midpunto!

Tu problema es que cuando usas el operador & es igual al BIT AND, no es lo mismo que el boolean AND, asi que te recomiendo que cambies todos los & por && para que haga tu comparacion booleana y no una suma binaria!

Saludos.
  #5 (permalink)  
Antiguo 11/10/2006, 22:20
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 2 meses
Puntos: 3
Cita:
Iniciado por GatorV Ver Mensaje
Hola midpunto!

Tu problema es que cuando usas el operador & es igual al BIT AND, no es lo mismo que el boolean AND, asi que te recomiendo que cambies todos los & por && para que haga tu comparacion booleana y no una suma binaria!

Saludos.
No importa si pones un & o &&...igual se interpreta como un "and"...

Con respecto al problema orgininal:
Sigue el consejo de Criptex...
Otro punto... es necesario que sepas que cuando hay un "&" (and) ..la sentencia se ejecutara "solo si" la siguiente condicion se cumple...es decir.cuando usas un "and" se tienen que cumplir todas las condiciones
Cosa distinta pasa cuando usas "or" , ya que solo basta que se cumpla una condicion para que ejecute la sentencia.
Digo , por si no lo tenias claro.
Saludos
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #6 (permalink)  
Antiguo 14/10/2006, 02:08
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Lo tengo claro, pero era otro el problema.

Hola y gracias ante todo. Todo lo que nombramos aquí son cosas bastante standar para muchos lenguajes, y esto & es lo mismo que esto && al menos para php, lo que me pasaba era raro y aunque ya lo he solucionado no me lo explico muy bien. El problema era con los campos de formularios desplegables. Tuve que cambiar los valores numéricos por texto, también si el listin desplegable llega vacío le tuve que asignar un valor diferente de los otros desplegables, después ordene todo un poco más y todo comenzó a marchar, aunque para mí no tiene mucha lógica porque que más da si pones texto o número, si la condición es:


Código PHP:
if ($vara !=varb==2){
tu sentencia..
}

o

if ($vara !='ahora' varb=='nunca'){
 
tu sentencia..
 }

o

if ($vara !='no' &varb=='no'){
 
tu sentencia..
 } 
Saludos.
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 04:02.