Как мне сохранить измененные данные в базе данных? - PullRequest
1 голос
/ 05 августа 2009

Я подал заявку на извлечение названия и исполнителя, который сейчас играет, из потока интернет-радио, и он отображается в виде обычного текста на этой странице:

http://thelisthq.net/z1035.php

Вывод - просто команда php 'echo $ variable', но переменная $ постоянно меняется, так как я могу сохранить каждое различное значение $ variable в базе данных. Конец планируется сохранить список всех песен, которые играют в течение определенного периода времени.

1 Ответ

11 голосов
/ 05 августа 2009

Вам потребуется настроить скрипт 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);
}
?>

Настройка запланированного задания или задания cron для запуска php -f z1035.php каждую минуту.

Чтобы увидеть весь список песен, создайте новый php файл station_history.php

<code><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";
}
?>
...