rispa
Новичок
Проблема с удалением из бд
Необходимо в указанной директории прочитать и вывести файлы с расширением mp3 и flac. А также вывести информацию по каждому файлу (время модификации, название, исполнитель, альбом, год и т.д.). В дальнейшем планируется добавить кеширование, чтобы не перечитывать теги по каждому запросу каждого пользователя, реализовать кеш прочитанных данных.
Сейчас у меня следующая проблема: актульность содержимого таблицы бд. Я из базы беру данные, содержащие имена файлов. Затем, начинаю сравнивать с файлами директории. В случае добавления файла в директорию - добавляю данные этого файла в базу, это у меня получилось. Но вот с удалением - беда. Как организовать удаление из базы, если файл удаляется из директории, подскажите, пожалуйста.
Необходимо в указанной директории прочитать и вывести файлы с расширением mp3 и flac. А также вывести информацию по каждому файлу (время модификации, название, исполнитель, альбом, год и т.д.). В дальнейшем планируется добавить кеширование, чтобы не перечитывать теги по каждому запросу каждого пользователя, реализовать кеш прочитанных данных.
Сейчас у меня следующая проблема: актульность содержимого таблицы бд. Я из базы беру данные, содержащие имена файлов. Затем, начинаю сравнивать с файлами директории. В случае добавления файла в директорию - добавляю данные этого файла в базу, это у меня получилось. Но вот с удалением - беда. Как организовать удаление из базы, если файл удаляется из директории, подскажите, пожалуйста.
PHP:
<?php
require_once 'MP3/Id.php';
include_once 'mysql_connect.php';
mysql_query('create table IF NOT EXISTS musi(url text,file text, date text, artists text, album text, year int, name text)')
or die ("MySQL error: ".mysql_error());
$url = "c:/";
//массив из базы
$modified_files = mysql_query('SELECT file FROM musi');
for ($k=array(); $row = mysql_fetch_row($modified_files) ; $k[]=$row);
//листинг директории
function CheckExt($filename, $ext) {
$passed = FALSE;
$testExt = "\.".$ext."$";
if (eregi($testExt, $filename)) {
$passed = TRUE;
}
return $passed;
}
$exts = array("mp3","flac");
$dir = opendir("$url");
$files = readdir($dir);
while (false !== ($files = readdir($dir))) {
foreach ($exts as $value) {
if (CheckExt($files, $value)) {
echo "<a href=\"$files\">$files</a>\n<br>";
$puti = $url.'/'.$files;
$id3 = &new MP3_Id();
$result = $id3->read("$puti");
$art = $id3->getTag('artists');
$alb = $id3->getTag('album');
$year = $id3->getTag('year');
$name = $id3->getTag('name');
$modifed = date ("F d Y H:i:s.", filemtime($puti));
echo "в последний раз файл $files был изменен: " . $modifed . "\n<br>";
echo 'Название: ' . $name . "\n<br>";
echo 'Исполнитель: ' . $art . "\n<br>";
echo 'Альбом: ' . $alb . "\n<br>";
echo 'Год: ' . $year . "\n<br>";
echo 'Комментарий: ' . $id3->getTag('comment') . "\n<br>";
echo 'Жанр: ' . $id3->getTag('genre') . "\n<br>";
echo 'Жанр (число): ' . $id3->getTag('genreno') . "\n<br>";
echo 'Трэк: ' . $id3->getTag('track') . "\n<br>";
for ($i=0; $i <= count($k); $i++){
if ($k[$i][0] == $files){
$flag=true;
break;
}
else
$flag=false;
if ($flag==false) {
$query = "insert into musi(url,file, date, artists,album,year,name) values('$url', '$files', '$modifed', '$art','$alb', '$year', '$name')";
mysql_query ( $query );
}
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Refresh</a>\n";
closedir($dir);
?>