Tema: Imposible if
Ver Mensaje Individual
  #11 (permalink)  
Antiguo 04/12/2010, 21:22
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Imposible if

A ver...

Tienes un error de concepto. ¿Contra qué quieres hacer la comparación del valor de $_POST['categoria']?

Mira esta página: http://www.php.net/manual/es/types.comparisons.php . Te darás cuenta de los resultados que obtendrás de una comparación dependiendo del tipo de elementos que está comparando (strings, enteros, booleanos, etc); y además, del tipo de comparación que estás realizando (flexible o estricta). En una comparación flexible (Usando el operador ==), El valor cero (0) es igual a un string. Es decir, la sentencia ("texto" == 0) siempre evaluará como verdadero (true).

Otro punto que estás pasando por alto es que los valores que obtienes de un formulario, y por ende, que accesa a través de la superglobal $_POST, siempre serán de tipo string. Por lo tanto, una comparación flexible con 0 siempre te dará true.

La solución con empty entonces tampoco te servirá pues tu valor "cero" es el string "0". Por lo tanto, teóricamente $_POST['categoria'] nunca será empty.

Puedes comparar strings usando la comparación flexible, es decir, ($_POST['categoria'] == "0"), pero lo recomendable en todo caso sería usar una función de PHP que está hecha justo para eso: strcasecmp():

Código PHP:
Ver original
  1. if( strcasecmp($_POST['categoria'], "0") == 0) {
  2.     // ...
  3. }

Con eso debería funcionar como quieres,

Saludos,