Foros del Web » Programando para Internet » PHP »

problema con if

Estas en el tema de problema con if en el foro de PHP en Foros del Web. y sigo con mis burradas ahora necesito es validar dos variables al mismo tiempo, para lo que decidi hacer un if de la siguiente manera: ...
  #1 (permalink)  
Antiguo 31/12/2008, 17:25
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
problema con if

y sigo con mis burradas

ahora necesito es validar dos variables al mismo tiempo, para lo que decidi hacer un if de la siguiente manera:

Código PHP:

if ($afiliacion == 'no' or $mesualidad =='no' ) {

echo 
'NO SE PUEDE GENERAR NINGUNA TRANSACCION PORQUE EL VEHICULO NO SE ENCUENTRA AL DIA';

} else if (
$afiliacion =='si' and $mensualidad == 'si') {

echo 
'PRESIONE AQUI PARA CONTINUAR';


resulta que la seguna condicion o sea si las variables son 'si' en ambos casos me la corre bien, pero la primera no, o sea si una de las dos variables es 'no' no me imprime nada en la pantalla
__________________
Say no more.......
  #2 (permalink)  
Antiguo 31/12/2008, 17:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con if

no uses OR ni AND:

|| (doble pipa o como se llame el caracter) se usa para OR
&& (doble ampersand) se usa para AND
Código PHP:
if ($afiliacion == 'no' || $mesualidad =='no' ) {
echo 
'NO SE PUEDE GENERAR NINGUNA TRANSACCION PORQUE EL VEHICULO NO SE ENCUENTRA AL DIA';
} else if (
$afiliacion =='si' && $mensualidad == 'si') {
echo 
'PRESIONE AQUI PARA CONTINUAR';

__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 31/12/2008, 17:55
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Respuesta: problema con if

lo puse asi pero donde va el II no me imprime nada
__________________
Say no more.......
  #4 (permalink)  
Antiguo 31/12/2008, 18:18
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Mensaje Respuesta: problema con if

Hola,

Cita:
Iniciado por el_cesar Ver Mensaje
if ($afiliacion == 'no' or $mesualidad =='no' ) {
Cuando $afiliacion tiene el valor 'no'; PHP ya no evalúa $mensualidad.
Y por eso debería generar un error cuando $afiliacion es diferente que 'no'.

Saludos,
  #5 (permalink)  
Antiguo 31/12/2008, 18:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con if

agrega al final un else donde imprimas el contenido de afiliacion y mensualidad para saber cual es el problema.

Edito: Error de dedo de el_cesar y error de lectura de Triby
Buen ojo HackmanC
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 31/12/2008, 20:23
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: problema con if

el_cesar:
Prueba utilizando XOR en vez de OR.
Cuando la pàgina te sale en blanco debes ir al log de errores de tu servidor
y podras determinar que exactamente paso. Es decir donde y porque ocurrio algo inesperado!.
Saludos
Franco
P.S. O lo puedes poner asi ->
if ($afiliacion != 'si' xor $mesualidad != 'si' ) {
echo 'NO SE PUEDE GENERAR NINGUNA TRANSACCION PORQUE EL VEHICULO NO SE ENCUENTRA AL DIA';
exit();
}
if ($afiliacion =='si' and $mensualidad == 'si') {
echo 'PRESIONE AQUI PARA CONTINUAR';
}

Última edición por franco190453; 31/12/2008 a las 20:29
  #7 (permalink)  
Antiguo 31/12/2008, 21:08
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Respuesta: problema con if

ya funciono el problema era que habia escrito $mesualidad en lugar de $mensualidad por eso dije que era una burrada
__________________
Say no more.......
  #8 (permalink)  
Antiguo 01/01/2009, 13:40
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: problema con if

Hola,

Cita:
Iniciado por el_cesar Ver Mensaje
ya funciono el problema era que habia escrito $mesualidad en lugar de $mensualidad por eso dije que era una burrada
¿Interesante, ni por que lo escribí en rojo lo observaste?
¿Tampoco notaste la letra 'n' resaltada e italizada en el siguiente parrafo?
Realmente quería ver cuanta atención le estabas poniendo al problema y a la solución.
(Aunque al principio me pareció una broma )

Cita:
Iniciado por franco190453 Ver Mensaje
...
Prueba utilizando XOR en vez de OR.
Tienes idea de la diferencia entre XOR y OR ?

En ese caso cuando los dos sean falsos o los dos sean verdaderos genera VERDADERO. El operador lógico XOR es completamente diferente a OR.

Saludos,

Última edición por HackmanC; 01/01/2009 a las 14:12
  #9 (permalink)  
Antiguo 01/01/2009, 17:42
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: problema con if

Hackman:
Gracias por la aclaracion ->
Cita:
Operadores de Lógica Ejemplo Nombre Resultado
$a and $b Y TRUE si tanto $a como $b son TRUE.
$a or $b O TRUE si cualquiera de $a o $b es TRUE.
$a xor $b O exclusivo (Xor) TRUE si $a o $b es TRUE, pero no ambos.
! $a No TRUE si $a no es TRUE.
$a && $b Y TRUE si tanto $a como $b son TRUE.
$a || $b O TRUE si cualquiera de $a o $b es TRUE.
Saludos
Franco
P.S. Sin embargo el operador logico XOR NO es totalmente diferente.
Es parcialmente diferente ya que: Cuando $a o $b es TRUE tira TRUE,
pero cuando $a y $b son TRUE tira FALSE.
Para OR cuando $a o $b es TRUE tira TRUE, y cuando $a y $b son
TRUE tambien tira TRUE.
Corrigeme si me equivoco!.

Última edición por franco190453; 01/01/2009 a las 17:55
  #10 (permalink)  
Antiguo 02/01/2009, 01:55
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Mensaje Respuesta: problema con if

Hola,

Cita:
Iniciado por franco190453 Ver Mensaje
...
P.S. Sin embargo el operador logico XOR NO es totalmente diferente.
Es parcialmente diferente ...
Lo único que tienen en común es que son operadores lógicos.

El hecho de que el resultado de ... { true and true = true } y { true or true = true } sea true en los dos casos ... no hace que and y or sean parcialmente diferentes ... son totalmente diferentes tanto 'and', 'or' y 'xor'; aunque en algunos casos 'casualmente' generen el mismo resultado.

http://es.wikipedia.org/wiki/Operador_l%C3%B3gico

Saludos,

ps:

Bueno, específicamente, como un concepto comparativo, se podría decir que son parecidos, generan resultados parecidos, son operadores y se basan en tablas de verdad; pero semánticamente son completamente diferentes.

Última edición por HackmanC; 02/01/2009 a las 02:02 Razón: ps
  #11 (permalink)  
Antiguo 02/01/2009, 02:19
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Mensaje Respuesta: problema con if

Cita:
Iniciado por HackmanC Ver Mensaje
... En ese caso cuando los dos sean falsos o los dos sean verdaderos genera VERDADERO. ...
Cita:
Iniciado por franco190453 Ver Mensaje
$a xor $b O exclusivo (Xor) TRUE si $a o $b es TRUE, pero no ambos.
Ooops!

Cuando los dos son iguales XOR genera FALSO (al contrario de lo que escribí en rojo) y como corregiste adecuadamente. En esa parte me equivoque ... fe de errata

Saludos,

Última edición por HackmanC; 02/01/2009 a las 04:32 Razón: errata
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 15:11.