Foros del Web » Programando para Internet » PHP »

Reproductor de FLV con Base de Datos

Estas en el tema de Reproductor de FLV con Base de Datos en el foro de PHP en Foros del Web. Hola estimados colegas y amigos: Tengo un problema que ya me esta quemando la cabeza, espero encuentren el error ya que yo no he podido ...
  #1 (permalink)  
Antiguo 29/09/2009, 13:17
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 16 años, 4 meses
Puntos: 1
Exclamación Reproductor de FLV con Base de Datos

Hola estimados colegas y amigos:

Tengo un problema que ya me esta quemando la cabeza, espero encuentren el error ya que yo no he podido despues de horas de intentarlo.

Estoy creando un web flv player utilizando jwplayer como reproductor, lo que yo deseo hacer es ocultar el archivo "video.flv" y reemplazarlo en el codigo

Por ejemplo:
que en s1.addVariable("file","video.flv");
Me quede asi: s1.addParam("flashvars","file=<?php echo $embed_code ?>");

Para que de esta manera tome el video de esta manera: http://www.MISITIO.com/index.php?id=1 cuando 1 es el video en si.

Coloco los codigos que hice hasta el momento:

Base de Datos:

Código:
-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `videos`
--

CREATE TABLE IF NOT EXISTS `videos` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `status` enum('Active','Disabled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Active',
  `title` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL,
  `caption` text COLLATE utf8_unicode_ci,
  `category` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL,
  `filename` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL,
  `embed_code` text COLLATE utf8_unicode_ci,
  `video_date` date NOT NULL DEFAULT '0000-00-00',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;

--
-- Volcar la base de datos para la tabla `videos`
--

INSERT INTO `videos` (`id`, `status`, `title`, `caption`, `category`, `filename`, `embed_code`, `video_date`) VALUES
(1, 'Active', 'Lonely Angel', 'Kid Theodore''s Lonely Angel music video', 'www.MISITIO.com', NULL, 'http://www.MISITIO.com/play/video.flv', '2007-10-25');
Bien, calculo que la tabla esta perfecta porque no encontre errores.




Aqui puede estar el problema, en la plantilla index.php

Código PHP:
<?php

// Informacion de conexion a base de datos
$dbhost    'localhost';
$dbname    'nombrebase';
$dbuser    'nombreuser';
$dbpasswd  'password';
// la URL donde va
$url       'index.php?id=';


// La conexion con la base, no marca error
$dbcnx     mysql_connect($dbhost$dbuser$dbpasswd) or die("    
No puedo conectar al servidor: " 
$dbhost);
$dbselect  mysql_select_db($dbname) or die("No se pudo conectar a la base de datos: " $dbselect);

if ((!
$dbcnx) || (!$dbselect))
{
  echo 
"No se puede conectar a la base de datos";
}


// La base que quiero que tome, no marcar error
$query  sprintf("SELECT embed_code FROM videos");
$result mysql_query($query$dbcnx) or die ("No se pudo conectar a videos\n<br>\n" mysql_error() . "\n<br>\n" $query_1 "\n");

?> 

// ACA ME PARECE QUE LE ESTOY ERRANDO O ME FALTA ALGUN CODIGO ANTES DE CERRAR LA LLAVE ANTERIOR

<div id="container">Necesitas <a href="http://www.macromedia.com/go/getflashplayer">Flash Player</a> para ver este video.</div>
    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">
        var s1 = new SWFObject("mediaplayer.swf","mediaplayer","500","400","8");
        s1.addParam("allowfullscreen","true");
        s1.addVariable("width","500");
        s1.addVariable("height","400");
        s1.addParam("flashvars","file=<?php echo $embed_code ?>"); // Aqui deberia responder el codigo que coloque en la base "embed_code" y nada, no funciona
        s1.write("container");
    </script>
</body>


</html>

¿Ven algun error que yo no vea? porque no logro que lea id=1 como el archivo "video.flv"

Gracias de antemano
__________________
Si vas a hacer una pregunta y nosotros nos apuramos en ayudarte, ayudanos al responder rapido. Y si encontraste la solución, posteala para que puedas ayudar a muchas otras personas.
  #2 (permalink)  
Antiguo 29/09/2009, 13:20
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: Reproductor de FLV con Base de Datos

Pues te falta extraer el resultado usando mysql_fetch_array() y luego pasarlo a una variable que se llame $embed_code.

Saludos.
  #3 (permalink)  
Antiguo 29/09/2009, 13:32
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Reproductor de FLV con Base de Datos

¿Te refieres a esto?

Código PHP:
<?php
// Toma los datos de la base..
$query  sprintf("SELECT embed_code FROM videos");
$result mysql_query($query$dbcnx) or die ("No te toma la base videos\n<br>\n" mysql_error() . "\n<br>\n" $query_1 "\n");

while (
$row mysql_fetch_array($resultMYSQL_ASSOC)) {
    
printf("ID: %s  Name: %s"$row["id"], $row["name"]);
}

mysql_free_result($result);
?>
__________________
Si vas a hacer una pregunta y nosotros nos apuramos en ayudarte, ayudanos al responder rapido. Y si encontraste la solución, posteala para que puedas ayudar a muchas otras personas.
  #4 (permalink)  
Antiguo 29/09/2009, 13:57
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: Reproductor de FLV con Base de Datos

Algo así, pero tienes que asignar el valor a una variable para imprimirla más abajo en tu código.

Saludos.
  #5 (permalink)  
Antiguo 29/09/2009, 14:11
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 16 años, 4 meses
Puntos: 1
Exclamación Respuesta: Reproductor de FLV con Base de Datos

Bueno, me ha quedado asi. No logro que funcione, si pudieras ayudarme reemplazando el codigo que puse mal o colocandolo dentro realmente seria de gran ayuda si no es mucha molestia.

Gracias realmente por ayudarme

Código PHP:
// Toma los datos de la base..
$query  = sprintf("SELECT id, status, title, caption, category, filename, embed_code, video_date FROM videos");
$result = mysql_query($query, $dbcnx) or die ("No te toma la base videos\n<br>\n" . mysql_error() . "\n<br>\n" . $query_1 . "\n");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    printf("ID: %s  Estas Viendo: %s Categoria: %s", $row["id"], $row["title"], $row["category"]);
}

mysql_free_result($result); 

?> 

<div id="container">Necesitas <a href="http://www.macromedia.com/go/getflashplayer">Flash Player</a> para ver este video.</div>
    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">
        var s1 = new SWFObject("mediaplayer.swf","mediaplayer","500","400","8");
        s1.addParam("allowfullscreen","true");
        s1.addVariable("width","500");
        s1.addVariable("height","400");
        s1.addParam("flashvars","file=<?php $row["embed_code"?>");
        s1.write("container");
    </script>
__________________
Si vas a hacer una pregunta y nosotros nos apuramos en ayudarte, ayudanos al responder rapido. Y si encontraste la solución, posteala para que puedas ayudar a muchas otras personas.
  #6 (permalink)  
Antiguo 29/09/2009, 14:15
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 8 meses
Puntos: 6
Respuesta: Reproductor de FLV con Base de Datos

s1.addParam("flashvars","file=<?php echo $row["embed_code"] ?>");
  #7 (permalink)  
Antiguo 29/09/2009, 14:21
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Reproductor de FLV con Base de Datos

Gracias xempro, ya agregue este codigo que me citas y sigue sin tomar el archivo FLV de la base de datos.
__________________
Si vas a hacer una pregunta y nosotros nos apuramos en ayudarte, ayudanos al responder rapido. Y si encontraste la solución, posteala para que puedas ayudar a muchas otras personas.
  #8 (permalink)  
Antiguo 29/09/2009, 14:32
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 8 meses
Puntos: 6
Respuesta: Reproductor de FLV con Base de Datos

Haz lo siguiente...

Código PHP:
while ($row mysql_fetch_array($resultMYSQL_ASSOC)) {
    
printf("ID: %s  Name: %s"$row["id"], $row["name"]);
    
$embed_code=$row["embed_code"];

y esto...

Cita:
.
.
.
s1.addParam("flashvars","file=<?php echo $embed_code; ?>");
.
.
.
  #9 (permalink)  
Antiguo 29/09/2009, 14:44
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 16 años, 4 meses
Puntos: 1
De acuerdo


Perfecto, ahora si funciona de maravilla, les agradezco mucho a los 2 por la gran ayuda que me dieron. Bien Ahora me toca a mi desglozar todo esto para que la persona que lo necesite en internet lo entienda. Voy a publicar otro mensaje con todo el codigo paso a paso.

Realmente muy agradecido, un fuerte abrazo colegas. Seguire trabajando!

Bien, lo prometido.

Finalmente paso todo en limpio para que el que necesite trabajar FLV en una base de datos de manera sencilla.

1) Bajamos el Web Flv Player, http://www.longtailvideo.com/players/jw-flv-player/

2) Creamos la plantilla php, en este caso le colocaremos index.php

Colocaremos el siguiente codigo

Código PHP:
<?php

// Informacion de conexion a base de datos
$dbhost    'localhost';
$dbname    'nombrebase';
$dbuser    'nombreuser';
$dbpasswd  'password';
// la URL donde va
$url       'index.php?id=';


// La conexion con la base
$dbcnx     mysql_connect($dbhost$dbuser$dbpasswd) or die("    
No puedo conectar al servidor: " 
$dbhost);
$dbselect  mysql_select_db($dbname) or die("No se pudo conectar a la base de datos: " $dbselect);

if ((!
$dbcnx) || (!$dbselect))
{
  echo 
"No se puede conectar a la base de datos";
}


// La base que quiero que tome
$query  sprintf("SELECT embed_code FROM videos");
$result mysql_query($query$dbcnx) or die ("No se pudo conectar a videos\n<br>\n" mysql_error() . "\n<br>\n" $query_1 "\n");

while (
$row mysql_fetch_array($resultMYSQL_ASSOC)) {
    
printf("ID: %s  Name: %s"$row["id"], $row["name"]);
    
$embed_code=$row["embed_code"];
}  

?> 

// Reproductor de JWPlayer

<div id="container">Necesitas <a href="http://www.macromedia.com/go/getflashplayer">Flash Player</a> para ver este video.</div>
    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">
        var s1 = new SWFObject("mediaplayer.swf","mediaplayer","500","400","8");
        s1.addParam("allowfullscreen","true");
        s1.addVariable("width","500");
        s1.addVariable("height","400");
        s1.addParam("flashvars","file=<?php echo $embed_code?>");
        s1.write("container");
    </script>
</body>


</html>
3) Una vez hecho esto creamos nuestra base de datos asi:

Código:
-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `videos`
--

CREATE TABLE IF NOT EXISTS `videos` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `status` enum('Active','Disabled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Active',
  `title` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL,
  `caption` text COLLATE utf8_unicode_ci,
  `category` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL,
  `filename` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL,
  `embed_code` text COLLATE utf8_unicode_ci,
  `video_date` date NOT NULL DEFAULT '0000-00-00',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;

--
-- Volcar la base de datos para la tabla `videos`
--

INSERT INTO `videos` (`id`, `status`, `title`, `caption`, `category`, `filename`, `embed_code`, `video_date`) VALUES
(1, 'Active', 'Lonely Angel', 'Kid Theodore''s Lonely Angel music video', 'www.MISITIO.com', NULL, 'http://www.MISITIO.com/play/video.flv', '2007-10-25');
4) Copiamos los archivos del FLV player y los llevamos a nuestra carpeta ftp. Es importante que recuerdes el nombre de la carpeta a la que haz colocado estos archivos, recomiendo que a esta carpeta para no modificar el codigo php le coloquen "play"

5) En la base de datos le colocamos el nombre del archivo FLV (embed_code), es importante que coloques toda la direción. Ej.: http://www.MISITIO.com/play/video.flv

6) una vez completado todo y realizadas las modificaciones ya esta listo tu embed respondiendo a tu base de datos.

__________________
Si vas a hacer una pregunta y nosotros nos apuramos en ayudarte, ayudanos al responder rapido. Y si encontraste la solución, posteala para que puedas ayudar a muchas otras personas.

Última edición por GatorV; 30/09/2009 a las 12:07
  #10 (permalink)  
Antiguo 30/09/2009, 06:02
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Reproductor de FLV con Base de Datos

Una observación: Te estás olvidando de filtrar el SELECT por el campo ID. Tal y como lo haces, siempre te saldrá el mismo vídeo !!!! Además, ¿para qué recorrer toda la tabla si al final sólo necesitas un registro?
  #11 (permalink)  
Antiguo 03/10/2009, 13:52
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Reproductor de FLV con Base de Datos

Cita:
Iniciado por juanfuentes Ver Mensaje
Una observación: Te estás olvidando de filtrar el SELECT por el campo ID. Tal y como lo haces, siempre te saldrá el mismo vídeo !!!! Además, ¿para qué recorrer toda la tabla si al final sólo necesitas un registro?
Es cierto juan, es lo que me esta pasando en este momento. Te agradeceria si podes confirmarme lo que debo hacer entonces.
__________________
Si vas a hacer una pregunta y nosotros nos apuramos en ayudarte, ayudanos al responder rapido. Y si encontraste la solución, posteala para que puedas ayudar a muchas otras personas.
  #12 (permalink)  
Antiguo 03/10/2009, 15:05
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: Reproductor de FLV con Base de Datos

Hola, para filtrar un SELECT por tu ID del video, primero tienes que sacar el ID de la direccion (en tu caso se lo pasas a la Url mediante GET). Yo haría algo así:

Código PHP:
//coges el id de la direccion
$id intval($_GET['id']);
// La base que quiero que tome
$query  sprintf("SELECT embed_code FROM videos WHERE id ='$id'");
$result mysql_query($query$dbcnx) or die ("No se pudo conectar a videos\n<br>\n" mysql_error() . "\n<br>\n" $query_1 "\n"); 
Espero que te funcione. Un saludo
  #13 (permalink)  
Antiguo 03/10/2009, 15:54
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Reproductor de FLV con Base de Datos

Ahora lo pruebo y te cuento. Gracias SetheR
__________________
Si vas a hacer una pregunta y nosotros nos apuramos en ayudarte, ayudanos al responder rapido. Y si encontraste la solución, posteala para que puedas ayudar a muchas otras personas.
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 22:44.