Как мне сохранить измененные данные в базе данных?
-
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>