如何将更改的数据存储到数据库中?

时间:2009-08-05 03:12:48

标签: php sql mysql dynamic-data

我做了一个应用程序,从互联网广播流中获取现在播放的标题和艺术家,我在此页面上以纯文本显示:

http://thelisthq.net/z1035.php

输出只是一个php'echo $ variable'命令,但是$ variable不断变化,所以如何将$ variable的每个不同值存储到数据库中。最终计划保留在一段时间内播放的所有歌曲的列表。

1 个答案:

答案 0 :(得分:11)

你必须设置php脚本每隔x分钟左右运行一次,而不是回显结果,检查当前正在播放的歌曲的最新数据库条目,如果不同,添加一条新记录

首先,一些SQL来设置一个新表:

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

然后,修改PHP脚本以在数据库中插入记录而不是回显到屏幕:

<?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);
}
?>

设置计划任务或cron作业,以便每分钟运行php -f z1035.php

要查看整个歌曲列表,请创建一个新的php文件station_history.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>