Foros del Web » Programando para Internet » PHP »

Condicion if

Estas en el tema de Condicion if en el foro de PHP en Foros del Web. Tengo un problemilla. He colocado este codigo Código PHP: <?php  if ( $row_somosfavoritos [ 'aceptado' ] !=  "PUEDE"  ||  $row_somosfavoritos [ 'aceptado' ] !=  "NO" ) {  ?> Que ...
  #1 (permalink)  
Antiguo 01/06/2011, 14:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Condicion if

Tengo un problemilla.
He colocado este codigo
Código PHP:
<?php if ($row_somosfavoritos['aceptado'] != "PUEDE" || $row_somosfavoritos['aceptado'] != "NO") { ?>
Que segun creo los simbolos || son igual que OR.
O sea que lo que le estoy diciendo es que si en $row_somosfavoritos es diferente a NO o ACEPTAR muestre lo que hay delante.
Pues no me funciona.
Alguna ayuda?

Gracias
  #2 (permalink)  
Antiguo 01/06/2011, 14:16
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Condicion if

la sintaxis esta bien, si $row_somosfavoritos['aceptado'] es diferente a PUEDE o a NO debería pasar la condición.

Muestra el dato que tienes en $row_somosfavoritos['aceptado'] antes de usarlo en la condición para que te asegures que tiene el valor que esperas.

Un saludo
  #3 (permalink)  
Antiguo 01/06/2011, 14:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Condicion if

Lo que me sale es PUEDE.
El caso es que si lo pongo solo if ($row_somosfavoritos['aceptado'] != "PUEDE", me va bien, el problema es cuando pongo las 2 condiciones que es cuando no me funciona.
  #4 (permalink)  
Antiguo 01/06/2011, 14:37
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: Condicion if

intenta asi:
Código PHP:
if ($row_somosfavoritos['aceptado'] != "PUEDE" && $row_somosfavoritos['aceptado'] != "NO") {
echo 
"Es diferente";

__________________
Agregadecer no cuesta nada O SI?
  #5 (permalink)  
Antiguo 01/06/2011, 14:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Condicion if

ok, ese si funciona.
Muchas gracias
  #6 (permalink)  
Antiguo 01/06/2011, 14:47
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Condicion if

Cita:
Iniciado por visona Ver Mensaje
Lo que me sale es PUEDE.
El caso es que si lo pongo solo if ($row_somosfavoritos['aceptado'] != "PUEDE", me va bien, el problema es cuando pongo las 2 condiciones que es cuando no me funciona.
si tiene PUEDE y la condicion es Diferente de PUEDE no lo va a hacer pero si le agregas o Diferente de NO siempre va a entrar por q la condicion lo esta haciendo asi PUEDE es diferente de puede Falso y la otra PUEDE diferente de NO V
V or F es igual a verdadero.

Por eso con una sola condicion si evalua el falso y agregandole las dos siempre va a ser verdadero.

Explica mejor q es lo q quieres hacer para poder ayudarte mejor.
  #7 (permalink)  
Antiguo 01/06/2011, 15:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Condicion if

Y sin a esa condicion le quisiera poner otra condicion de otra consulta pero en ver de OR sea AND?

que daria asi
Código PHP:
  <?php if ($row_somosfavoritos['aceptado'] != "NO" && $row_somosfavoritos['aceptado'] != "PUEDE" && (!empty($row_somosfavoritos['aceptado'])) AND (!empty($row_ver['aceptado']))){ ?>
el AND no me lo acepta, hay alguna otra funcion que se asimile?

Un saludo
  #8 (permalink)  
Antiguo 01/06/2011, 16:15
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 10 meses
Puntos: 9
Respuesta: Condicion if

Cita:
Iniciado por visona Ver Mensaje
Y sin a esa condicion le quisiera poner otra condicion de otra consulta pero en ver de OR sea AND?

que daria asi
Código PHP:
  <?php if ($row_somosfavoritos['aceptado'] != "NO" && $row_somosfavoritos['aceptado'] != "PUEDE" && (!empty($row_somosfavoritos['aceptado'])) AND (!empty($row_ver['aceptado']))){ ?>
el AND no me lo acepta, hay alguna otra funcion que se asimile?

Un saludo
Literalmente AND??? no seria &&??
  #9 (permalink)  
Antiguo 01/06/2011, 16:21
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Condicion if

Tus errores debe ser de conceptos and y && funcionan igual.
El problema debe ser al evaluar la condicion todo depende de los que quieras evaluar si el if arroja un verdadero ejecutara lo que esta dentro del si y si es un falso no.
  #10 (permalink)  
Antiguo 01/06/2011, 18:01
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Condicion if

El error esta en el concepto ke tienes del AND y el OR primero ke todo,

"AND" y "&&" es lo mismo

"OR" y "||" es lo mismo


La condicion AND devuelve Verdadero solo si ambas partes devuelven Verdadero. En tu caso seria asi.

Código PHP:
// Suponiendo ke el valor fuera PUEDE. 
//$row_somosfavoritos['aceptado'] = "PUEDE";

// Chekear. 
if ($row_somosfavoritos['aceptado'] != "PUEDE" && $row_somosfavoritos['aceptado'] != "NO")
    echo 
"Condicion AND VERDADERA, el valor ni es \"PUEDE\" ni es \"NO\"";
else
    echo 
"Condicion AND FALSA, el valor es uno de los dos \"PUEDE\" o \"NO\"."
1ra Condicion: $row_somosfavoritos['aceptado'] NO Es "PUEDE" --> FALSO porke $row_somosfavoritos['aceptado'] SI Es "PUEDE".

2da Condicion: $row_somosfavoritos['aceptado'] NO Es "NO" --> Verdadero porke $row_somosfavoritos['aceptado'] Es "PUEDE" --> no es "NO".

O sea esta condicion tendra como resultado 1ra FALSO y 2da VERDADERO. Resultado Final FALSO.
Mostrara en pantalla: Condicion AND FALSA, el valor es uno de los dos "PUEDE" o "NO".

El mismo resultado tendrias si el valor asignado a $row_somosfavoritos fuera "NO".

Por lo ke es logico tendrias el resultado inverso si el valor asignado no fuera ni "PUEDE" ni "NO"

Código PHP:
// Suponiendo ke el valor fuera "Cualkier Valor". 
//$row_somosfavoritos['aceptado'] = "Cualkier Valor";

// Chekear. 
if ($row_somosfavoritos['aceptado'] != "PUEDE" && $row_somosfavoritos['aceptado'] != "NO")
    echo 
"Condicion AND VERDADERA, el valor ni es \"PUEDE\" ni es \"NO\"";
else
    echo 
"Condicion AND FALSA, el valor es uno de los dos \"PUEDE\" o \"NO\"."
1ra Condicion: $row_somosfavoritos['aceptado'] NO Es "PUEDE" --> Verdadero porke $row_somosfavoritos['aceptado'] Es "Cualkier valor".

2da COndicion: $row_somosfavoritos['aceptado'] NO Es "NO" --> Verdadero porke $row_somosfavoritos['aceptado'] Es "Cualkier valor".

Por lo tanto tienes como 1er resutlado Verdadero y 2do resultado Verdadero, Resultado Final Verdadero.

Mostrara en pantalla: Condicion AND VERDADERA, el valor ni es "PUEDE" ni es "NO".

Resuminedo AND (&&) solo devuelve VERDADERO cuando ambas condiciones son VERDADERAS.

Verdadero y Verdadero = Verdadero. // ejecutara le ke este dentro del IF
Verdadero y Falso = Falso. // ejecutara lo ke este dentro del ELSE

El OR (||)

Devuelve VERDADERO si cualkiera de las 2 condiciones es VERDADERA o ambas lo son. Solo basta ke una sea verdadera para devolver VERDADERO.

Código PHP:
// Suponiendo ke el valor fuera PUEDE. 
//$row_somosfavoritos['aceptado'] = "PUEDE";

// Chekear. 
if ($row_somosfavoritos['aceptado'] != "PUEDE" || $row_somosfavoritos['aceptado'] != "NO")
    echo 
"Condicion OR VERDADERA, el valor puede ser cualkier valor";
else
    echo 
"No se ejecutara este trozo de codigo."
1ra Condicion: $row_somosfavoritos['aceptado'] NO Es "PUEDE" --> FALSO porke $row_somosfavoritos['aceptado'] SI Es "PUEDE".

2da Condicion: $row_somosfavoritos['aceptado'] NO Es "NO" --> Verdadero porke $row_somosfavoritos['aceptado'] NO Es "NO".

Por lo tanto tienes como 1er resutlado FALSO y 2do resultado Verdadero, Resultado Final Verdadero.
Veras en pantalla: Condicion OR VERDADERA, el valor puede ser cualkier valor.

Lo mismo te pasaria con cualkier valor ke le asignes a la variable.

Para "cualkier valor" asignado.

1ra Condicion: $row_somosfavoritos['aceptado'] NO Es "PUEDE" --> VERDADERO porke $row_somosfavoritos['aceptado'] no Es "PUEDE".

2da Condicion: $row_somosfavoritos['aceptado'] NO Es "NO" --> VERDADERO porke $row_somosfavoritos['aceptado'] no es "NO".

Veras en pantalla lo mismo: Condicion OR VERDADERA, el valor puede ser cualkier valor.

Para ke devulva FALSO tendrian ambas condiciones ke ser FALSO, y eso nunca lo lograrias con dos condiciones diferentes y un solo valor a checkar, es lo mismo

ke "No puedes estar en dos lugares diferentes en el mismo intervalo de tiempo".

No puedes chekear con OR dos condicines ke NO sean el valor con respecto a un unico valor, logico ke siempre una de las dos condiciones no sera nunca el valor.

Para lograr esto tendrias ke replantearte la condicion y checkearla con la igualdad.

Por Ejemplo:

Código PHP:
// Suponiendo ke el valor fuera Caulkier valor. 
//$row_somosfavoritos['aceptado'] = "Calkier valor";

// Chekear. 
if ($row_somosfavoritos['aceptado'] == "PUEDE" || $row_somosfavoritos['aceptado'] == "NO")
    echo 
"Condicion OR VERDADERA, el valor es \"PUEDE\" o \"NO\"";
else
    echo 
"Condicion OR FALSA, el valor es cualkiera diferente de \"PUEDE\" y \"NO\"."
1ra Condicion: $row_somosfavoritos['aceptado'] Es (==) "PUEDE" --> FALSO porke $row_somosfavoritos['aceptado'] NO Es "PUEDE".

2da Condicion: $row_somosfavoritos['aceptado'] Es (==) "NO" --> FALSO porke $row_somosfavoritos['aceptado'] NO Es "NO".

Resultado FALSO y FLASO, resultado Final: FALSO.

veras en pantalla: Condicion OR FALSA, el valor es cualkiera diferente de "PUEDE" y "NO".

Lo contrario si le asignas el valor PUEDE.

Código PHP:
// Suponiendo ke el valor fuese PUEDE. 
//$row_somosfavoritos['aceptado'] = "PUEDE";

// Chekear. 
if ($row_somosfavoritos['aceptado'] == "PUEDE" || $row_somosfavoritos['aceptado'] == "NO")
    echo 
"Condicion OR VERDADERA, el valor es \"PUEDE\" o \"NO\".";
else
    echo 
"Condicion OR FALSA, el valor es cualkiera diferente de \"PUEDE\" y \"NO\"."
1ra Condicion: $row_somosfavoritos['aceptado'] Es (==) "PUEDE" --> VERDADERA porke $row_somosfavoritos['aceptado'] SI Es "PUEDE".

2da Condicion: $row_somosfavoritos['aceptado'] Es (==) "NO" --> FALSO porke $row_somosfavoritos['aceptado'] NO Es "NO".

Resultado VERDADERO y FLASO, resultado Final: VERDADERO (Solo basta ke uno sea verdadero para devolver VERDADERO).

veras en pantalla: Condicion OR VERDADERA, el valor es "PUEDE" o "NO".

Esto tambien te pasaria con el AND(&&) si chekearias esto mismo con la condicion de igualdad,

$value = 1
if ($value == 1 && $value == 2)
echo "Esto nunca sucederia";
else
echo "Siempre se ejecutara este codigo.";

Esta condicion siempre sera FALSA porke $value solo podra responder a un valor en el mismo intervalo de tiempo.

Por lo general siempre se utiliza este tipo de checkeos contra dos variable diferentes y no contra la misma es imposible ke en el mismo instante de tiempo ke corra el programa tuyo puedas tener la misma variable con dos valores diferentes.

Salu2 Roly.

Última edición por rolygc; 01/06/2011 a las 18:13
  #11 (permalink)  
Antiguo 02/06/2011, 16:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Condicion if

Muy buena explicacion, asi da gusto entender las cosas. Muy bien explicado

Etiquetas: Ninguno
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 19:17.