Problema con condicional dentro de un bucle.

Iniciado por Joystickoso, 30 Julio 2009, 20:11 PM

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

Joystickoso

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:
<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="http://www.youtube.com/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="http://www.youtube.com/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>

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!

Nakp

la comparación se hace con ==, e imagino que Youtube es una cadena, así que debería ir entre comillas

Código (php-brief,7) [Seleccionar]
<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="http://www.youtube.com/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="http://www.youtube.com/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>
Ojo por ojo, y el mundo acabará ciego.

дٳŦ٭

Cita de: Nakp en 31 Julio 2009, 00:17 AM
la comparación se hace con ==, e imagino que Youtube es una cadena, así que debería ir entre comillas

Código (php-brief,7) [Seleccionar]
<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="http://www.youtube.com/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="http://www.youtube.com/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>


como les haces para que quede resaltado?


Con sangre andaluza :)


Nakp

[code=php,#,#,#][/code]

donde # son los números de las líneas que quieres resaltadas
Ojo por ojo, y el mundo acabará ciego.

дٳŦ٭

Cita de: Nakp en 31 Julio 2009, 01:26 AM
[code=php,#,#,#][/code]

donde # son los números de las líneas que quieres resaltadas



Con sangre andaluza :)


Joystickoso

#5
Si que era lo de los dos simbolos de igual "==", ya está.
Lo de Youtube es de la tabla mysql de los links que dice si es un video de youtube, un link, una descarga u otra cosa.
Prueba superada, gracias!!

Ahora estoy a ver si puedo conseguir que el formulario para meter los links coja los links del youtube y en otra columna registre solo los 11 digitos para los videos.
Osea, que al registrar por ejemplo el link http://www.youtube.com/watch?v=a1IpPpB3iWI registre en otra columna a1IpPpB3iWI.
Estoy probando con "strpos" y "substr" haber si con algo asi:
Código (php) [Seleccionar]
<?php $posigual=echo strpos($_POST['Link'], "=");
$datosvideotube=if ($_POST['tipo']=="Youtube")
{echo substr($_POST['Link'], $posigual++, 11);}
else {echo vacio;}?>

Y habría mucha diferencia si fuese asi?
Código (php) [Seleccionar]
<?php $posigual='echo strpos('.$_POST['Link'].', "=")';
if ($_POST['tipo']=="Youtube")
{$datosvideotube='echo substr('.$_POST['Link'].', '.$posigual++.', 11)';}
else {$datosvideotube=vacio;}?>

Perdon por mi ignorancia, aun me queda mucho manual de php que leer...
Gracias.

[u]nsigned

Joystickoso:

     Tu código está  lleno de errores, pero de los feos... :xD

Ahora en serio, si estás leyendo un manual de PHP te recomendaría que lo leas MAS DETENIDA Y ATENTAMENTE. Por ejemplo habras leido que echo se usa para mostrar informacion, pero en realidad lo que hace es 'imprimir' algo en el documento:

Código (php) [Seleccionar]
$posigual=echo strpos($_POST['Link'], "=");

Ahi esta mal, no debe ir en medio de una asignacion. Ese codigo basicamente seria como decirle a php "en la variable $posigual mete el valor.. a no no espera, ahora quiero imprimir algo en la pagina, no voy a asignarle ningun valor a la variable $posigual.."

No se si me entiendes?

Buscate algun manual bien basico para empezar.

Saludos

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

Joystickoso

OK entiendo.
Si qie es de los gordos, si...
La cosa sería mas así:
Código (php) [Seleccionar]
<?php $posigual strpos($row_Recordset1['Link'], "=");
if ($row_Recordset1['tipo']==Youtube)
{$datosvideotube substr($row_Recordset1['Link'], $posigual++, 11);} 
else{$datosvideotube vacio;}?>

La verdad es que no me he leido ningun manual entero solo leo lo que voy necesitando aunque lo de:
Código (php) [Seleccionar]
$posigual=echo strpos($_POST['Link'], "=");
ya debería saberlo si, que fallo!
Tienes razon tengo que pillar algun manual guapo y con ejemplos y dedicarle horas.
En cuanto a lo que quiero hacer probare de otra forma a ver si lo consigo porque con esto de momento lo unico que he conseguido es que siempre "$datosvideotube = vacio".
Gracias por todo, sobretodo por la paciencia...
Saludos!