Ver Mensaje Individual
  #21 (permalink)  
Antiguo 18/03/2014, 06:36
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
(...)
y por último yo tenia entendido que:
Código PHP:
Ver original
  1. elseif ($sel=="Hombre - Ropa" or $sel=="Hombre - Complementos" or $sel=="Hombre - Calzado){
  2.  
  3. }

y esto:

Código PHP:
Ver original
  1. if ($sel=="Hombre - Ropa" or "Hombre - Complementos" or "Hombre - Calzado"){
  2.  
  3. }

compara igualmente la variable $sel con el or, luego ¿no es lo mismo?


GRACIAS!


No. No es lo mismo...
¿De dónde sacaste esa idea? Es la primera vez en mi vida que escucho algo así.

Mira, para hacerte una demostración simple de tu error, copia esto que te paso y pruébalo:
Código PHP:
<?php
$sel 
"Opcion 0";
if (
$sel=="Hombre - Ropa" or "Hombre - Complementos" or "Hombre - Calzado"){
 echo 
"Si estas viendo esto en pantalla es que estás equivocado..."
}
?>
Vamos a hacer una aclaración respecto a lógica proposicional: Los operadores AND, OR, XOR, NOT vinculan comparaciones lógicas entre dos valores, y esas comparaciones deben ser realizadas por medio de =, <, >, >=, <= y <> (el "=" en PHP es "==", pero eso es por una característica del lenguaje). Lo que significa que luego de un OR, debe haber una comparación explícita entre dos valores, y no una constante.
Para que quede claro, en lógica, una constante como parámetro, es siempre verdadera.

Cono nota para que tengas en cuenta, en todos los cursos de programación que puedas asistir verás que una de los temas es precisamente lógica proposicional, y eso es porque cada vez que debes crear controladores de flujo, o condiciones de derivación, estás usando lógica proposicional.
Siempre.

Finalmente, si lo que necesitas es que compare A o B o C y D, es decir alguno de los tres primeros valores, y si o sí el último, debes usar paréntesis para controlar la evaluación de las condiciones:
Código PHP:
elseif (($sel=="Hombre - Ropa" or $sel=="Hombre - Complementos" or $sel=="Hombre - Calzado" or $sel=="Mujer - Ropa" or $sel=="Mujer - Complementos" or $sel=="Mujer - Calzado" or "Niñ@s")
and 
$busca== ""
Los apréntesis, como en matemática, regulan la forma de realizar las operaciones.
Recuerda que no es lo mismo 3*2+5 que (3*2)+5. En lógica no es lo mismo A or B and C, que (A or B) and C...

Estudia un poco de esto: Lógica Proposicional
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)