Как мне сохранить измененные данные в базе данных?

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

  •  22-07-2019
  •  | 
  •  

Вопрос

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

http://thelisthq.net/z1035.php

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

Это было полезно?

Решение

Вам нужно будет настроить запуск сценария 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top