【问题标题】:How do I store changing data into a database?如何将更改的数据存储到数据库中?
【发布时间】:2009-08-05 03:12:48
【问题描述】:

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

http://thelisthq.net/z1035.php

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

【问题讨论】:

    标签: php sql mysql dynamic-data


    【解决方案1】:

    您必须将 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2012-06-08
      相关资源
      最近更新 更多