Pergunta

Eu fiz um pedido para levar o jogando agora título eo artista de um fluxo de rádio internet, e eu tê-lo exibindo em texto simples desta página:

http://thelisthq.net/z1035.php

A saída é simplesmente um php 'echo $ variable' comando, mas $ variable está mudando constantemente, assim como faço para armazenar cada valor diferente de $ variable em um banco de dados. O plano final para manter uma lista de todas as músicas que o jogo ao longo de um determinado período de tempo.

Foi útil?

Solução

Você terá que configurar o script php para executar a cada x minutos ou mais, e em vez de ecoando o resultado, verificar a entrada de banco de dados mais recente e contra a música que está tocando, e se for diferente, adicionar um novo registro .

Primeiro, alguns SQL para criar uma nova tabela:

CREATE TABLE SongList (
    ID int primary key auto_increment not null,
    Song char(255) not null,
    PlayTime Datetime not null
);

Em seguida, modifique o script PHP para inserir registros no banco de dados em vez de ecoando na tela:

<?php
$song = get_song(); //not sure how you're doing that
$sql = "SELECT Song FROM SongList ORDER BY PlayTime DESC LIMIT 1";
list($prevSong) = mysql_fetch_row(mysql_query($sql));
if ($song !== $prevSong) {
    $sql = "INSERT INTO SongList (Song, PlayTime) VALUES ('$song', NOW())";
    mysql_query($sql);
}
?>

Configurar uma tarefa agendada ou uma tarefa agendada para executar php -f z1035.php cada minuto.

Para ver a lista completa de músicas, criar uma nova station_history.php arquivo php

<html>
<body>
<pre>
<?php
$sql = "SELECT Song, PlayTime FROM SongList LIMIT 20"; // Just the last 20 songs
$result = mysql_query($sql);
while(list($song, $playtime) = mysql_fetch_row($result)) {
    echo "[$playtime] $song\n";
}
?>
</pre>
</body>
</html>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top