Foros del Web » Programando para Internet » PHP »

Como hago un if () que abarque dos condiciones.

Estas en el tema de Como hago un if () que abarque dos condiciones. en el foro de PHP en Foros del Web. Saludos a todas y todos, tengo una gran duda. Como hago un if () que abarque dos condiciones. Por ejemplo : Si ($a == "" ...
  #1 (permalink)  
Antiguo 26/05/2011, 14:05
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 222
Antigüedad: 13 años, 5 meses
Puntos: 32
Pregunta Como hago un if () que abarque dos condiciones.

Saludos a todas y todos, tengo una gran duda. Como hago un if () que abarque dos condiciones.

Por ejemplo :

Si ($a == "" y $b == "" ) die ();

Para abundar en el ejemplo: Busco la forma de detener la ejecución del script si el usuario no ingresa ningún dato.

Desde ya gracias.
__________________
La ciencia al poder. Pazciencia ya viene
  #2 (permalink)  
Antiguo 26/05/2011, 14:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Como hago un if () que abarque dos condiciones.

le pones if($a=='1' AND $b=='2') or die()

o en lugar de AND usas &&

si eso no es posible entonces lo ejecutas en el ELSE


pero Die no es muy común en un IF, quedaría mejor si preguntas por el objeto primero con isset():


if(isset($a) AND isset($b)){

//hace lo que tenga que hacer o puedes anclar el resultado deseado de cada variable
}else{

}
  #3 (permalink)  
Antiguo 26/05/2011, 14:16
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Como hago un if () que abarque dos condiciones.

No uses and, hoy en día se considera 'mala' práctica..
Los operadores son && y ||
&& es cuando quieres que se cumplan 2+ condiciones, || es cuando quieres que se cumplan cualquiera de las condiciones que pongas, por ejemplo:
Código PHP:
if ($foo == && $bar == 5) {
    echo 
'Foo es 1 y bar es 5!';
}

if (
$foo == || $bar == 5) {
    echo 
'Tal vez foo sea 1, bar sea 5 o ambos sean 1 y 5 respectivamente!';

__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #4 (permalink)  
Antiguo 26/05/2011, 14:20
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 222
Antigüedad: 13 años, 5 meses
Puntos: 32
Exclamación Respuesta: Como hago un if () que abarque dos condiciones.

Muy agradecido, problema resuelto!!
Código PHP:
$rut =$_POST['rut'];
$odc =$_POST['odc'];
if (
$rut =="" && $odc =="" ) die ("Debe especificar ODC ó RUT"); 
__________________
La ciencia al poder. Pazciencia ya viene

Última edición por ricardo_tu; 26/05/2011 a las 14:30
  #5 (permalink)  
Antiguo 26/05/2011, 14:59
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Como hago un if () que abarque dos condiciones.

Deberías usar empty() en lugar de comparar las variables, además de que está mal tu comparación, ya que ambos datos tienen que estar vaciós, por lo que si solo está uno no va a entrar al if... Lo correcto sería:
Código PHP:
if (empty($rut) || empty($odc))
    die(
"Debe especificar ODC o RUT!"); 
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 26/05/2011, 15:10
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Como hago un if () que abarque dos condiciones.

Cita:
Iniciado por Sourcegeek Ver Mensaje
No uses and, hoy en día se considera 'mala' práctica..
Los operadores son && y ||

&& es cuando quieres que se cumplan 2+ condiciones, || es cuando quieres que se cumplan cualquiera de las condiciones que pongas, por ejemplo:
Código PHP:
if ($foo == && $bar == 5) {
    echo 
'Foo es 1 y bar es 5!';
}

if (
$foo == || $bar == 5) {
    echo 
'Tal vez foo sea 1, bar sea 5 o ambos sean 1 y 5 respectivamente!';


podrías especificar porque es mala practica usar esos operadores ?...

por lo que yo se .. nisiquiera trabajan de la misma forma, por lo cual no se debería estimar el uso de uno sobre el otro.

Código PHP:
<?php
$foo 
true;
$bar false;
$result $foo and $bar;
var_dump($result); // false
$result $foo && $bar;
var_dump($result); // true

si pudieras adjuntar mas información te lo agradecería.

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 26/05/2011, 15:20
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Como hago un if () que abarque dos condiciones.

La verdad no tengo mucha información, a mi me dijeron hace mucho que se considera mala práctica de cierta foma por el cómo actúa AND frente a &&
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #8 (permalink)  
Antiguo 26/05/2011, 15:30
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Como hago un if () que abarque dos condiciones.

No considero apropiado del todo decir es que debe de usar empty para validar la variable.
Dependerá de como trate los valores que envíe por post.

Si le llega un '0' como cadena y lo pasa por empty le va a dar que el valor está vacío. Y sin embargo puede querer rescartar el valor 0. No deja de ser un número.

Código PHP:
$str='0';

empty(
$str)?printf('vacio,'):printf('lleno,'); //vacio
$str==""?printf('vacio,'):printf('lleno,');    //lleno

$str=0;

empty(
$str)?printf('vacio,'):printf('lleno,'); //vacio
$str==""?printf('vacio,'):printf('lleno,');    //vacio 
-----------------------------------------------------------------------------------------
Hay que tener en cuenta que empty:
Devuelve FALSE si var tiene un valor no vacío y diferente de cero.

Las siguientes expresiones son consideradas como vacías:

"" (una cadena vacía)
0 (0 como un entero)
0.0 (0 como un real)
"0" (0 como una cadena)
NULL
FALSE
array() (un array vacío)
var $var; (una variable declarada, pero sin un valor en una clase)
-----------------------------------------------------------------------------------------

En cuanto a lo del AND e &&, pueden mirar la tablita que dejó hgp147 con los operadores lógicos así como la cita que corresponde al manual de php.
http://www.forosdelweb.com/f18/diferencia-entre-548078/
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Última edición por IEKK; 26/05/2011 a las 15:36
  #9 (permalink)  
Antiguo 26/05/2011, 15:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Como hago un if () que abarque dos condiciones.

Cita:
Iniciado por IEKK Ver Mensaje
No considero apropiado del todo decir es que debe de usar empty para validar la variable.
Dependerá de como trate los valores que envíe por post.

Si le llega un '0' como cadena y lo pasa por empty le va a dar que el valor está vacío. Y sin embargo puede querer rescartar el valor 0. No deja de ser un número.

Código PHP:
$str='0';

empty(
$str)?printf('vacio,'):printf('lleno,'); //vacio
$str==""?printf('vacio,'):printf('lleno,');    //lleno

$str=0;

empty(
$str)?printf('vacio,'):printf('lleno,'); //vacio
$str==""?printf('vacio,'):printf('lleno,');    //vacio 
-----------------------------------------------------------------------------------------
Hay que tener en cuenta que empty:
Devuelve FALSE si var tiene un valor no vacío y diferente de cero.

Las siguientes expresiones son consideradas como vacías:

"" (una cadena vacía)
0 (0 como un entero)
0.0 (0 como un real)
"0" (0 como una cadena)
NULL
FALSE
array() (un array vacío)
var $var; (una variable declarada, pero sin un valor en una clase)
-----------------------------------------------------------------------------------------

En cuanto a lo del AND e &&, pueden mirar la tablita que dejó hgp147 con los operadores lógicos así como la cita que corresponde al manual de php.
http://www.forosdelweb.com/f18/diferencia-entre-548078/
en lo primero te encuentro toda la razón, pero el link que pusiste por lo del AND y && lleva a una pagina donde el autor no tiene ni idea de que esta hablando ^^ !

aquí te dejo un link mas completo
http://www.mclibre.org/consultar/php...s_logicas.html


saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 26/05/2011, 15:50
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Como hago un if () que abarque dos condiciones.

Cita:
Iniciado por Hidek1 Ver Mensaje
en lo primero te encuentro toda la razón, pero el link que pusiste por lo del AND y && lleva a una pagina donde el autor no tiene ni idea de que esta hablando ^^ !

aquí te dejo un link mas completo
http://www.mclibre.org/consultar/php...s_logicas.html
saludos.
Gracias por en enlace. Es curioso porque aunque en todos lados explican que && y AND son iguales queda claro con: "Como además el operador de asignación = tiene una prioridad intermedia" Que no funcionan del mismo modo.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #11 (permalink)  
Antiguo 26/05/2011, 19:04
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 222
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Como hago un if () que abarque dos condiciones.

Cita:
Iniciado por Sourcegeek Ver Mensaje
Deberías usar empty() en lugar de comparar las variables, además de que está mal tu comparación, ya que ambos datos tienen que estar vaciós, por lo que si solo está uno no va a entrar al if... Lo correcto sería:
Código PHP:
if (empty($rut) || empty($odc))
    die(
"Debe especificar ODC o RUT!"); 
Agradecido de la ayuda, te comento que en efecto lo que intento es que si ambos datos están vacíos el script se detenga. Me gusto tu ejemplo y es el codigo que estoy usando. Gracias!!
__________________
La ciencia al poder. Pazciencia ya viene
  #12 (permalink)  
Antiguo 26/05/2011, 19:06
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Como hago un if () que abarque dos condiciones.

A ver, entonces tú quieres que entre al if si ambos estén vacíos? No quieres que uno o ambos lo estén?

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #13 (permalink)  
Antiguo 26/05/2011, 22:31
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 222
Antigüedad: 13 años, 5 meses
Puntos: 32
Exclamación Respuesta: Como hago un if () que abarque dos condiciones.

Cita:
Iniciado por Sourcegeek Ver Mensaje
A ver, entonces tú quieres que entre al if si ambos estén vacíos? No quieres que uno o ambos lo estén?

Saludos!
Lo que pretendo lograr (y ya conseguí) es que si el usuario olvida llenar AMBOS campos (que en realidad son radiobutton) el código no continúe ejecutándose.
El script es para generar una búsqueda en Base de Datos en la que si ambas opciones están sin marcar no tiene sentido continuar con el script. Insisto en agradecer tu preocupación y colaboración.
__________________
La ciencia al poder. Pazciencia ya viene

Etiquetas: condiciones
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 23:00.