Agregar contador de reproducciones en reproductor de música

  • Autor Autor Wext
  • Fecha de inicio Fecha de inicio
W

Wext

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola gente como están 😀 pues tengo mi web (Radio regeneracion ~ Escuchar y descargar musica nunca fue tan facil.) y pues es un buscador en script jeje me gustaría que en pop up de las canciones donde la reproduce tuviera un contador que dijera "Esta canción a sido escuchada %'s veces" no c como ponerlo ya que el listen.php es un archivo generalizado agradecería mucho su ayuda c:
 
Haces una tabla

Tabla: visitas_video
Columnas: id_video, visitas

Simplecita para no acomplejarnos xD

en el archivo rescatas la variable (asumamos que es id)

Insertar CODE, HTML o PHP:
$id=$_GET['id'];
existe=mysql_num_rows(mysql_query("select id_video from visitas_video WHERE id_video='$id'"));
if ($existe>0)
{
mysql_query("UPDATE visitas_video SET visitas=visitas+1 WHERE id_video='$id'");
}
else
{
mysql_query("INSET INTO visitas_video ($id,1)");
}

Para obtener...

Insertar CODE, HTML o PHP:
$resultado=mysql_fetch_array(mysql_query("SELECT visitas FROM visitas_video WHERE "));
$cantidad_visitas=$resultado[0]['visitas'];
if ($cantidad_visitas>0)
{
$cantidad="Esta canción a sido escuchada $cantidad_visitas veces"; //más de 1
}
else
{
$cantidad="Esta canción a sido escuchada $cantidad_visitas vez"; //solo 1
}

Mil disculpas si tiene algún error de sintaxis ya que no tengo donde probarlo xD
 
Puedes crear un tabla que se llame visits por ejemplo, con campos id autoincrementable, ip del visitante, id de la canción. Luego en el archivo listen.php puedes hacer una comprobación si la ip ya ha escuchado esa canción que no se vuelva a insertar:
PHP:
$realip = ($_SERVER['REMOTE_ADDR'] ? mysql_real_escape_string($_SERVER['REMOTE_ADDR']) : mysql_real_escape_string($_SERVER['X_FORWARDER_FOR']));
ctype_digit($_GET['id']) or die('El id es necesario');
if(!mysql_num_rows(mysql_query('SELECT id FROM visits WHERE ip = \''.$realip.'\' && song = \''.$_GET['id'].'\''))){
  mysql_query('INSERT INTO visits (ip, song) VALUES (\''.$realip.'\', \''.$_GET['id'].'\')');
}
Luego, para obtener las visitas:
PHP:
echo 'Esta canción ha sido visitada ',mysql_num_rows(mysql_query('SELECT id FROM visits WHERE song = \''.$_GET['id'].'\'')),' veces';
No sé si sea exactamente lo que quieras, pero puede servir para darte una idea de cómo hacerlo.
Saludos
 

Ya te había dicho algo por msn, pero para que el usuario lo vea, lo hago aquí también. Yo cambiaría:

PHP:
$realip = ($_SERVER['REMOTE_ADDR'] ? mysql_real_escape_string($_SERVER['REMOTE_ADDR']) : mysql_real_escape_string($_SERVER['X_FORWARDER_FOR']));
por
PHP:
$realip = mysql_real_escape_string($_SERVER['REMOTE_ADDR'] ? $_SERVER['REMOTE_ADDR'] : $_SERVER['X_FORWARDER_FOR']);

En la parte de obtener las visitas, aunque sólo se obtiene el id, si existiera un hipotético caso donde la canción sea popular y tenga cientos o miles de visitas, el servidor puede sufrir, o peor aún, llorar y discutir con el dueño. Podrías reemplazar:

PHP:
echo 'Esta canción ha sido visitada ',mysql_num_rows(mysql_query('SELECT id FROM visits WHERE song = \''.$_GET['id'].'\'')),' veces';
por
PHP:
$hits = mysql_fetch_row(mysql_query('SELECT id FROM visits WHERE song = \''.$_GET['id'].'\''));
echo 'Esta canción ha sido visitada '.$hits[0].' ve'.($hitsl[0] == 1 ? 'z' : 'ces');


Como consejo final, lo mejor que podrías hacer es divorciarte de "MySQL" y, sin casarte ni prometerte, empezar a usar "MySQLi"... u otro como PDO.