Foros del Web » Programando para Internet » PHP »

Problema condicional dentro de un bucle

Estas en el tema de Problema condicional dentro de un bucle en el foro de PHP en Foros del Web. Wenas, tengo una tabla mysql en la que meto links de descargas videos de youtube, etc... Mi idea es que si el registro es un ...
  #1 (permalink)  
Antiguo 30/07/2009, 11:48
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Problema condicional dentro de un bucle

Wenas, tengo una tabla mysql en la que meto links de descargas videos de youtube, etc... Mi idea es que si el registro es un video de youtube me meta el video a la derecha del link con object y que si no lo es que meta por ejemplo una imagen. Pues bien los videos aparecen bien pero no las imagenes. Lo he echo con el dreamweaver retocandolo a mi gusto y ha quedado asi:(pongo desde la tabla)
Código HTML:
<html><body><td colspan="3" valign="top"><?php do { ?>
      <table width="100%" border="2" cellpadding="0" cellspacing="1" bordercolor="#0033FF">
        <!--DWLayoutTable-->
        <tr>
          <td width="450" height="98" align="center" valign="middle" bordercolor="#FFFFFF"><span class="Estilo4">A&ntilde;adido por <span class="Estilo6"><?php echo $row_Recordset1['Addpor']; ?> <span class="Estilo7">el <?php echo $row_Recordset1['fecha']; ?> a las <?php echo $row_Recordset1['hora']; ?></span></span></span></td>
          <td width="439" rowspan="3" align="center" valign="middle">
		  <?php if ($row_Recordset1['tipo']=Youtube)
		  { echo '<object width="425" height="344"><param name="movie" value="paginayoutube/v/'.$row_Recordset1['datostube'].'&color1=0xb1b1b1&color2=0xcfcfcf&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="paginayoutube/v/'.$row_Recordset1['datostube'].'&color1=0xb1b1b1&color2=0xcfcfcf&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object>';
		  }
		  else {echo '<p class="Estilo9"><img src="imagenes/image.png" width="343" height="65"></p>';}?></td>
        </tr>
        <tr>
          <td height="44" align="center" valign="middle" bordercolor="#FFFFFF"><span class="Estilo4">Link:<br>
              <span class="Estilo6"><a href="<?php echo $row_Recordset1['Links']; ?>" target="_blank"><?php echo $row_Recordset1['Links']; ?></a></span> </span></td>
        </tr>
        <tr>
          <td height="151" align="center" valign="middle" bordercolor="#FFFFFF"><p class="Estilo4">Comentario:<br>
              <span class="Estilo6"><?php echo $row_Recordset1['Comentario']; ?></span> </p></td>
        </tr>
            </table>
      <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?></td></body></html> 
Pone los videos bien y ordenados pero los que no son videos los pone como si lo fueran, osea se ve el recuadro del video pero en blanco en vez de la imagen que debía aparecer.
Yo supongo que el problema está en el condicional dentro del bucle como si el condicional solo lo tuviese en cuenta la primera vez.
Si es asi, como lo soluciono?
Gracias!

Última edición por Joystickoso; 30/07/2009 a las 12:16
  #2 (permalink)  
Antiguo 30/07/2009, 13:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problema condicional dentro de un bucle

<?php if ($row_Recordset1['tipo']=Youtube)


Para hacer comparaciones debes usar doble (o hasta triple) signo =, ejemplo if($var1 == $var2), ese if lo que devuelve es si se asigno correctamente Youtube a $row_Recordset['tipo']

Youtube es una constante?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 30/07/2009, 13:20
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 10 meses
Puntos: 3
De acuerdo Respuesta: Problema condicional dentro de un bucle

Ya está, como has dicho con dos = asi:
<?php if ($row_Recordset1['tipo']==Youtube) ya me funciona.

El $row:Recordset['tipo'] puede ser Youtube,Links;Descargas y Otros.
Creo que era eso lo que preguntabas.
Muchas gracias!!!

Ahora solo me queda que cuando la peña introduzca un link, si este es de youtube como por ejemplo (paginyoutubepuntocom/watch?v=mzL5kMpup5U)registre la parte de mzL5kMpup5U en otra columna para poner los videos mas facil.
He pensado en probar con "substr" y con "strpos" a ver si lo consigo, o hay alguna manera mas facil?
Gracias!!
  #4 (permalink)  
Antiguo 30/07/2009, 13:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema condicional dentro de un bucle

Si es un string tienes que ponerlo entre comillas "" de lo contrario te va a generar un notice.

Saludos.
  #5 (permalink)  
Antiguo 30/07/2009, 13:43
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Problema condicional dentro de un bucle

OK! Algo asi?
Código PHP:
<?php $posigual=echo strpos("$_POST['Links']""=");
                    
$datosvideotube=if ($_POST['tipo']==Youtube)
                    {echo 
substr("$_POST['Links']",$posigual++,11);}
                    else {echo 
vacio;};?>
Lo he echo pensando en que todas las direcciones de youtube tienen un simbolo "=" antes de lo que yo quiero. Donde $posigual seria la posicion del simbolo "=" para usarla con "substr y seleccionar solo los 11 caracteres que me interesan.
A ver que tal...
Gracias
  #6 (permalink)  
Antiguo 30/07/2009, 15:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema condicional dentro de un bucle

No, te recomiendo leas el Manual de PHP, para comparar en un if con un string haces esto:
Código PHP:
Ver original
  1. if ($var == "string")

Saludos.
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 21:21.