Foros del Web » Programando para Internet » PHP »

un if dentro de otro if

Estas en el tema de un if dentro de otro if en el foro de PHP en Foros del Web. Qué tal amigos, estoy necesitando solucionar este problema: Código PHP:         while(!$RstArticulosIdioma->EOF)         {                  $query="select * from articulos where articulos_id=".$RstArticulosIdioma->Fields('2_articulos_id');         $RstArticulosR=$connTRIANGLE->SelectLimit($query) or die($connTRIANGLE->ErrorMsg());          if($RstArticulosR->Fields('articulos_id')!=null or $RstArticulosR->Fields('articulos_id')!="")          {                             ?>           <a href="libro.php?articulos_id= <?=$RstArticulosR -> Fields ( ...
  #1 (permalink)  
Antiguo 11/03/2009, 14:29
 
Fecha de Ingreso: diciembre-2005
Ubicación: Mar del Plata
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 2
un if dentro de otro if

Qué tal amigos, estoy necesitando solucionar este problema:

Código PHP:
        while(!$RstArticulosIdioma->EOF)
        {
        
        $query="select * from articulos where articulos_id=".$RstArticulosIdioma->Fields('2_articulos_id');
        $RstArticulosR=$connTRIANGLE->SelectLimit($query) or die($connTRIANGLE->ErrorMsg());
         if($RstArticulosR->Fields('articulos_id')!=null or $RstArticulosR->Fields('articulos_id')!="")
         {
         
        
         ?>
          <a href="libro.php?articulos_id=<?=$RstArticulosR->Fields('articulos_id');?>&idioma=<?=$idioma;?>"><img src="images/<?=$RstArticulosR->Fields('tipo');?>/listado/<?
          
if($RstArticulosR->Fields('formato_listados_img')!=null or $RstArticulosR->Fields('formato_listados_img')!="")
          {
          echo 
$RstArticulosR->Fields('articulos_id').$RstArticulosR->Fields('formato_listados_img');
          }
          else{echo 
"0.gif";}
          
?>
          " alt="Rud ea coreraesent" width="120" height="120" title="Rud ea coreraesent" class="imagDesplegable" border="0"/></a>
  <div id="top30">
    

  <img src="img/fle_cre.png" width="7" height="6" /><a href="#" class="style2"> <? if($RstArticulosR->Fields('idioma')!="" or $RstArticulosR->Fields('idioma')!=null){$query="select * from idiomas where codigo='".$RstArticulosR->Fields('idioma')."'";
$RstArticulosIdiomaS=$connTRIANGLE->SelectLimit($query) or die($connTRIANGLE->ErrorMsg());
echo 
$RstArticulosIdiomaS->Fields('Descripcion');
$RstArticulosIdiomaS->Close();
  };
?></a>
  <p>

      <img src="img/fle_cre.png" width="7" height="6" /><span class="style2"> ISBN<br />
    <?=$RstArticulosR->Fields('isbn');?>
    <br />
    <img src="img/fle_cre.png" width="7" height="6" /> </span><a href="compra.php?articulos_id=<?=$RstArticulosR->Fields('articulos_id');?>&idioma=<?=$idioma;?>"><img src="img/carrito.gif" width="17" height="21" /></p>
  </div>
    <?
    $RstArticulosIdioma
->MoveNext();
    
?> <p>&nbsp;</p>
    <?
    
}
    else{echo 
"<img src='nada.png' />";}
    }
    
          
?>
Básicamente lo que pretendo es que si no se encuentran registros que muestre la imagen "nada.png". El problema creo que surge al meter varios if dentro de este if, si alguien sabe como solucionarlo o que tengo que hacer para arreglarlo bienvenido sea.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 11/03/2009, 14:42
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: un if dentro de otro if

Por comidad para tí, te recomiendo que separes el código HTML del PHP ya que depurar un código así es ardua tarea.

Saludos!
  #3 (permalink)  
Antiguo 11/03/2009, 14:43
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: un if dentro de otro if

mmm cual es el error que marca o que pasa?
  #4 (permalink)  
Antiguo 11/03/2009, 18:32
 
Fecha de Ingreso: diciembre-2005
Ubicación: Mar del Plata
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: un if dentro de otro if

Cita:
Iniciado por bleckfala Ver Mensaje
mmm cual es el error que marca o que pasa?
Es un sitio muy grande que me pasaron, la verdad que para mi tambien es incomodo, pero me piden que solucione dentro de lo que está hecho. Mi alternativa fue esa y no funcionó.
Directamente no me muestra nada, ni tira ningun error, si tengo registros anda perfecto, pero si no hay registros no me muestra el ELSE final.
  #5 (permalink)  
Antiguo 12/03/2009, 04:32
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: un if dentro de otro if

No te lo e pillado muy bien pero prueba añadfiendo un ifelse (empty($campo)) {echo "<img src='nada.png' />";}
y yo mantendriqa tambien el else por si acaso hay alguna variable no contemplada.
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #6 (permalink)  
Antiguo 12/03/2009, 08:07
 
Fecha de Ingreso: diciembre-2005
Ubicación: Mar del Plata
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: un if dentro de otro if

probé tal como me dices, agregando el elseif justo antes del else, pero tampoco obtengo resultado :S no se que es lo que puede ser, la verdad.... si alguien puede ayudarme se lo voy a agradecer mucho
  #7 (permalink)  
Antiguo 12/03/2009, 08:22
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: un if dentro de otro if

No te muestra los registros porque lo estas evaluando en el while
Código php:
Ver original
  1. while(!$RstArticulosIdioma->EOF)
Si la consulta es fin de archivo 'EOF' nunca va a entrar el while

Para que se ejecute el else estas evaluando si el campo articulos_id es nulo o esta vacío
Código php:
Ver original
  1. if($RstArticulosR->Fields('articulos_id')!=null or $RstArticulosR->Fields('articulos_id')!="")
cosa que en una tabla bien diseñada nunca debería pasar.

Saludos.
  #8 (permalink)  
Antiguo 12/03/2009, 08:41
 
Fecha de Ingreso: diciembre-2005
Ubicación: Mar del Plata
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: un if dentro de otro if

Cita:
Iniciado por lisandro Arg Ver Mensaje
No te muestra los registros porque lo estas evaluando en el while
Código php:
Ver original
  1. while(!$RstArticulosIdioma->EOF)
Si la consulta es fin de archivo 'EOF' nunca va a entrar el while

Para que se ejecute el else estas evaluando si el campo articulos_id es nulo o esta vacío
Código php:
Ver original
  1. if($RstArticulosR->Fields('articulos_id')!=null or $RstArticulosR->Fields('articulos_id')!="")
cosa que en una tabla bien diseñada nunca debería pasar.

Saludos.
Lisandro, ante nada gracias por responder.

Por lo que tengo entendido ese while
Código PHP:
      while(!$RstArticulosIdioma->EOF
Corresponde a mostrar el contenido de acuerdo al idioma del sitio (esta hecho en 3 idiomas) .


Ese primer IF lo pensé diciendo: Si no tengo el id del articulo, no tengo articulo, muestro el contenido del else.
Pero no funciono.

Probé con
Código PHP:
if (mysql_num_rows($query) = 0
pero me tirá error
Código:
Fatal error: Can't use method return value in write context in
La verdad no se como puedo generar la consulta para saber si tengo o no algún registro y despues devolver el resultado. No se mucho PHP y estoy intentando realizar esto en un sitio muy grande el cual me pasaron.
  #9 (permalink)  
Antiguo 12/03/2009, 08:58
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: un if dentro de otro if

No conozco como funciona el sistema pero supongo que deberia funcionar algo como
Código php:
Ver original
  1. $RstArticulosR->EOF

Si no funciona lo anterior deberias asegurarte de hacer una consulta que no retorne registros y después hacer un
Código php:
Ver original
  1. echo '<pre>';
  2. var_dump($RstArticulosR);

Sabiendo que contiene cuando esta vacía va a ser facil evaluarla en el if
  #10 (permalink)  
Antiguo 12/03/2009, 09:50
 
Fecha de Ingreso: diciembre-2005
Ubicación: Mar del Plata
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: un if dentro de otro if

la verdad que no funciona nada, estoy haciendo miles de pruebas pero con ADODB se me hace muy complicado.
Voy a intentar cambiar todo el sistema rapidamente a ver si funciona con mysql_num_rows()
gracias de todas formas.
  #11 (permalink)  
Antiguo 12/03/2009, 10:01
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: un if dentro de otro if

En la documentación de adodb dice para:

Cita:
SelectLimit($sql,$numrows=-1,$offset=-1,$inputarr=false)
"Si tiene exito regresa un recordset, en caso contrario regresa false"
Código php:
Ver original
  1. if($RstArticulosR!=false)
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 14:38.