de nuevo problema con los IF's

Iniciado por Servia, 5 Junio 2009, 18:32 PM

0 Miembros y 1 Visitante están viendo este tema.

Servia

Ahora es correcto pero no le da la gana de funcionar, tengo esto:

Código (php) [Seleccionar]
if ($misid = 0){
echo 'La id no es válida';
}else{
// Hasta aquí funciona aunque diría que es ==
if ($estado = 'no') {
echo 'No está disponible';
}else if ($estado = 'si'){
echo 'Se encuentra disponible';
}
}


Cuando indico el estado si, sale No está disponible.
Cuandi indico el estado no, sale No está disponible.


‭lipman

Cita de: Servia en  5 Junio 2009, 18:32 PM

Código (php) [Seleccionar]
if ($misid == 0){
echo 'La id no es válida';
}else{
// Hasta aquí funciona aunque diría que es ==
if ($estado == 'no') {
echo 'No está disponible';
}elseif ($estado == 'si'){
echo 'Se encuentra disponible';
}
}


Cuando indico el estado si, sale No está disponible.
Cuandi indico el estado no, sale No está disponible.



Mira haber ahora. He jutando else+if y he colocado 2 iguales (porque 2 iguales se usan cuando comparas, uno cuando asignas)

Servia

#2
Ahora directamente no sale nada :S

He corregido otro error, falta un } si no me equivoco.

‭lipman

#3
Código (php) [Seleccionar]

if ($misid==0)
echo 'La id no es válida';
else
{
if ($estado=='no')
echo 'No está disponible';
elseif ($estado=='si')
echo 'Se encuentra disponible';
}


Ahora si funciona bien, que lo he probado xD

Es exactamente lo que posteé, solamente que he quitado muchos {}

Usa los {} cuando dentro del if o else, o elseif, haya más de una linea. Si solamente vas a poner una linea no los pongas, que te liarás.

PD: recuerda que la variable misid, valdrá cero, siempre que no valga otro numero. Es decir, que si no está declarada valdrá cero, y si le asignas caracteres, tambien valdrá cero.

PD2: Un consejo, sangra!!!!

cassiani

oooo

Citar
if (empty($misid))
   echo 'La id no es válida';
elseif ($estado=='no')
   echo 'No está disponible';
elseif ($estado=='si')
   echo 'Se encuentra disponible';

no deberías liarte si siempre identas el código,

saludos!

[u]nsigned

#5
Cita de: Servia en  5 Junio 2009, 19:16 PM
Ahora directamente no sale nada :S

Pero te tira algun error el interprete de PHP, o directamente no sale nada en la pagina?

PD: si lo que intentas hacer con $misid == 0 es comprobar si $misid es FALSE solo basta con hacer:
Código (php) [Seleccionar]

if(!$misid)
{
   //sentencias si $misid es FALSE
}
else
{
   //sentencia si $misid es TRUE
}

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Servia

#6
Perdón por no contestar, directamente no sale nada, voy a probar las otras formas que habéis puesto vosotros.

Edito: Ahora ya ni con el original sale nada.

Parece ser que el hosting tiene problemas, hasta que no resuelvan los suyos no podré saber de los míos.

‭lipman

Si no te funciona el codigo que puse, es porque, o algo pasa en el resto de tu código, o porque llevas un lio xD Pero funcionar funciona perfectamente.

Código (php) [Seleccionar]

if ($misid==0)
echo 'La id no es válida';
else
{
if ($estado=='no')
echo 'No está disponible';
elseif ($estado=='si')
echo 'Se encuentra disponible';
}


Para estas cosas igual necesitas hacer una "tabla de verdad" para aclararte:







misidestadoresolucion
cualquier cosa menos 0   cualquier cosa menos si o no   no sale nada
cualquier cosa menos 0   si   Se encuentra disponible
cualquier cosa menos 0   no   No está disponible
0   da igual lo que ponga   La id no es válida

NOTA: Si no está declarado, es igual a cero. Es decir, que si no está declarado misid, seria lo mismo que decir que vale 0, y lo mismo con estado.

Saludos

Servia

#8
Lipman he probado lo que has puesto y se queda en blanco. He quitado todo lo que hay dentro del else y el primer if si que funciona, por lo que debe ser problema del formato de la variable $estado.

Edito: ese era el problema muchas gracias.