Ver Mensaje Individual
  #19 (permalink)  
Antiguo 15/03/2014, 08:07
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: ¿Está bien hecha la siguiente consulta?

Cita:
Iniciado por angel_xx_1990 Ver Mensaje
Yo también creía que era lo mismo or y || y de hecho es lo mismo creo, pero puede ser que sea diferente la interpretación del código de los navegadores web, te comento que el or me sirve si son 2 o 3 cuestiones es decir:

pero si es una enumeracion más larga no me funcionaba correctamente, y ahora poniendo el signo || si funciona..no se igual que tu muy bien por que, pero así es..

y otra cosa..¿estas seguro que entraría con que se cumpla sólo uno de los primeros?

tengo entendido que si en un condicional existe un and con otra comparación, para que entre a él debe también cumplir ésa condición, ¿si no que sentido tiene?
Para que entrara en ese if debería de cumplirse que sel sea Hombre y sel2 Ropa, los dos, de ahí viene el and, te quiero decir que no entraria solo si cumple el primer sel y el segundo no...

¿Me equivoco?

Saludos!
La verdad es que me asombra lo que estás diciendo, porque demuestra al menos tres cosas:
1) Ni te molestaste en probar lo que te dije respecto al funcionamiento de un I() con un valor constante.
2) No conoces nada de lógica proposicional.
3) Ni siquiera tienes claro cómo se ejecuta el PHP....

No quiero ofenderte, pero hay cosas que con sólo decirlas ...

Vamos por partes:
1) Si hubieses probado el ejemplo que te puse, habrías notado que si pones una constante como único valor del IF(), se evalúa como verdadero (true), por la simple razón de que para que una constante de true en PHP lo único que debe suceder es que exista.
¿Qué implica eso?
Pues simplemente que todos esos valores que pones dan el mismo resultado que poner
Código PHP:
TRUE or TRUE or TRUE 
Creo (no lo probé) que sólo darían FALSE si pones un cero entre comillas ("0").

2) Un OR o su equivalente "||" es una disyunción lógica, y una proposición (el IF) se evalúa por el valor de verdad de una de ambas, pero si te molestas en leer logica proposicional verá que la disyunción es verdadera si:
a) Ambas son verdad.
b) La primera es verdad y la segunda falsa.
c) La primera es falsa y la segunda es verdad.
Esto significa que para ser FALSE, ambas tienen que ser falsas.

Un AND o su equivalente "&&", es una conjunción lógica y en la proposición sólo es verdad si ambas partes de la proposicion son verdaeras y falso en todos los otros casos.

Finalmente, cuando tienes una proposición compuesta de varias condiciones, se evalúan de izquierda a derecha,y los resultados del primer par son la entrada del tercer parámetro .
Esto significa que:
Código PHP:
TRUE or FALSE or FALSE or FALSE and TRUE 
Es da verdadero...
¿Por qué?
Porque el primer par da TRUE (disyunción), ese resultado se compara con el tercero y da TRUE (otra disyunción, lo mismo pasa con la siguiente, y para cuando llega a la última el resultado es TRUE, por lo que se compara como
Código PHP:
TRUE and TRUE 
Dando por resultado verdadero.

¿Se va entendiendo?

Estas cosas que te digo no dependen de ningún navegador ni lenguaje, porque son parte inherente a todos los lenguajes y sistemas de programación. Son lógica basal de todo.

3) El tema de la interpretación de los navegadores, te recomiendo que ni lo menciones, porque recibirás la misma respuesta (con otras palabras) que te daré ahora: El PHP NO SE EJECUTA EN LOS NAVEGADORES. Se ejecuta en los servidores, por ende nada tienen que ver en este asunto.

Ni lo menciones de nuevo, porque es conocimiento básico de PHP.

Resumiendo, para que te funcione mejor la cosa, prueba esto y recién entonces estarás haciendo algo bueno en ese IF:
Código PHP:
elseif ($sel=="Hombre - Ropa" or $sel=="Hombre - Complementos" or $sel=="Hombre - Calzado){
 

¿Se entiende?

Tienes que hacer la comparación contra la variable en todas las ocasiones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)