• Lunes 18 de Noviembre de 2024, 00:29

Autor Tema:  No Funciona El Condicional  (Leído 1706 veces)

Sue

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
No Funciona El Condicional
« en: Viernes 8 de Septiembre de 2006, 00:47 »
0
Hola a todos!
¿Alguien podrá darme una mano? ¿Cómo hago para que, si el autor no tiene foto, no salga la ruta, o si no tiene info salga un mensaje "no hay info"? Los campos book_authors_image y book_authors_info están vacíos, y no logro hacerlo funcionar. Probé de todo, pero no logro que diferencie el vacío del que tiene texto.  Si pongo esto
$obj[book_authors_info]!= null
no levanta la info y da el mensaje,
Si pongo esto:
$obj[book_authors_info]!= "null"  
me parece que lo considera como texto, no?
Si pongo
is_null($obj[book_authors_image]) == false
también levanta el vacío (no escribe nada) y el mensaje no sale.

Va el código:


<?PHP
$ssql_= @mysql_query("select * from zen_book_authors as a, zen_book_authors_info as ad
                 WHERE a.book_authors_id ='".$_GET[book_authors_id]."' and a.book_authors_id = ad.book_authors_id") or die(mysql_error());
$obj=mysql_fetch_object($ssql_);
?>

<? if(is_null($obj[book_authors_image]) == false ){?>
<td valign="top" bgcolor="#FFFFFF"><div align="left"><br><img src="/images/<?php echo $obj->book_authors_image; ?>" ></div></td>
<? } else {  ?>
<td bgcolor="#FFFFFF"></td>
<? } ?>
<td bgcolor="#FFFFFF">
<br>
<? if( $obj[book_authors_info]!= "null"  )  {
echo $obj->book_authors_info;
} else  {
echo '<div align="center">
<p class="texto">Por el momento, no hay información disponible.</p>
</div>';
}
?>

Gracias de antemano!!

Informix

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: No Funciona El Condicional
« Respuesta #1 en: Viernes 8 de Septiembre de 2006, 05:03 »
0
mmm a ver cambia

if(is_null($obj[book_authors_image]) == false )

por

if(is_null($obj[book_authors_image]) )

ya que is_null debe regresar true en caso de que sea nulo cierto ?


if( $obj[book_authors_info]!= "null" ) por

if( $obj[book_authors_info] != NULL )

a ver que pasa

saludos
Informix

"Ganar no es algo momentáneo, es algo permanente. Uno no gana de vez en cuando, uno no hace las cosas bien a veces, uno hace las cosas bien siempre" .

Vince Lombardi


Sue

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: No Funciona El Condicional
« Respuesta #2 en: Viernes 8 de Septiembre de 2006, 12:26 »
0
Gracias por la respuesta!!!
Mirá, si pongo:
if(is_null($obj[book_authors_image]) )
sale la imagen que está, pero cuando no hay sigue saliendo el enlace roto de la ruta, http://www.serviciobuscalibros.com.ar/images/
si en info pongo:
 if( $obj[book_authors_info] != NULL )
tanto en el que tiene texto como en el que no, sale el mensaje de "Info no disponible".
Es como que no los diferencia.
El campo book_authors_image es un varchar(64) predetermnado NULL y el campo book_authors_info es text predeterminado NULL.
Y no tengo idea de programación PHP :)
¿Qué podrá ser??
Gracias de nuevo!!!

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: No Funciona El Condicional
« Respuesta #3 en: Viernes 8 de Septiembre de 2006, 18:46 »
0
Prova haciendo:

Código: Text
  1. &#60;?PHP
  2. &#036;ssql_= @mysql_query(&#34;select * from zen_book_authors as a, zen_book_authors_info as ad
  3. WHERE a.book_authors_id ='&#34;.&#036;_GET[book_authors_id].&#34;' and a.book_authors_id = ad.book_authors_id&#34;) or die(mysql_error());
  4. &#036;obj=mysql_fetch_object(&#036;ssql_);
  5. ?&#62;
  6.  
  7.  
  8. &#60;td valign=&#34;top&#34; bgcolor=&#34;#FFFFFF&#34;&#62;&#60;div align=&#34;left&#34;&#62;&#60;br&#62;
  9.  
  10. &#60;? if(&#036;obj[book_authors_image]) echo '&#60;img src=&#34;/images/'.&#036;obj-&#62;book_authors_image.'&#34; &#62;';?&#62;
  11.  
  12. &#60;/div&#62;&#60;/td&#62;
  13. &#60;? } else { ?&#62;
  14. &#60;td bgcolor=&#34;#FFFFFF&#34;&#62;&#60;/td&#62;
  15. &#60;? } ?&#62;
  16. &#60;td bgcolor=&#34;#FFFFFF&#34;&#62;
  17. &#60;br&#62;
  18. &#60;? if( &#036;obj[book_authors_info]) {
  19. echo &#036;obj-&#62;book_authors_info;
  20. } else {
  21. echo '&#60;div align=&#34;center&#34;&#62;
  22. &#60;p class=&#34;texto&#34;&#62;Por el momento, no hay información disponible.&#60;/p&#62;
  23. &#60;/div&#62;';
  24. }
  25. ?&#62;
  26.  


El problema está en que MYSQL te devuelve un valor NULL, pero php lo interpreta como una cadena vacía.... Igualmente para el chequeo de condiciones, tanto el valor 0 com una cadena vacía, son nulos....

Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

Sue

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: No Funciona El Condicional
« Respuesta #4 en: Viernes 8 de Septiembre de 2006, 21:06 »
0
Gracias, Altareum!
Lo probé pero no levanta nada... queda en blanco la página y el código fuente muestra esto:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"></HEAD>
<BODY></BODY></HTML>
¿Qué podrá ser?