2009-08-05 5 views
1

я сделал заявление, чтобы взять в настоящее время воспроизводимую и художник из потока Интернет радио, и у меня есть это отображение в виде простого текста на этой странице:Как хранить измененные данные в базе данных?

http://thelisthq.net/z1035.php

Выход есть просто PHP «эхо $ переменная ', но переменная $ постоянно меняется, поэтому как я могу хранить каждое значение переменной $ в базе данных. Цель состоит в том, чтобы сохранить список всех песен, которые играют в течение определенного периода времени.

ответ

11

Вам нужно настроить скрипт 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> 
+0

, что полный ответ! – Jamie

+1

+1, отличный ответ. – Brandon

Смежные вопросы