変更データをデータベースに保存するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1231001

  •  22-07-2019
  •  | 
  •  

質問

インターネットラジオストリームから現在再生中のタイトルとアーティストを取得するアプリケーションを作成し、このページにプレーンテキストで表示しています:

http://thelisthq.net/z1035.php

出力は単なるphp 'echo $ variable'コマンドですが、$ variableは絶えず変化しているので、$ variableの各値をデータベースに保存するにはどうすればよいですか。一定期間再生されるすべての曲のリストを保持する最終計画。

役に立ちましたか?

解決

x分ごとに実行するようにphpスクリプトを設定する必要があります。結果をエコーする代わりに、現在再生中の曲に対して最新のデータベースエントリを確認し、異なる場合は新しいレコードを追加します。

最初に、新しいテーブルを設定するための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);
}
?>

毎分 php -f z1035.php を実行するように、スケジュールされたタスクまたはcronジョブをセットアップします。

曲のリスト全体を表示するには、新しい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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top