Newsgroup: it.comp.www.php
Titolo: "sincronizzare" un database e una directory

Salve.
Devo gestire (in locale) un archivio di file mp3 abbastanza ampio.
Attualmente non ho un database, i file sono in una directroy e si accede
ai file semplicemente con una lista dei file presenti nelle varie cartelle.
Mi piacerebbe fare un database in cui mantenere anche informazioni sui
file... I file continuerebbero a restare in una directory, e nel
database ci sarebbe, tra le altre informazioni di ogni canzone, anche
l'URL del file.
Il problema è che non so come gestire il rapporto tra il database e il
filesystem.
L'ideale sarebbe così, secondo me:
- io inserisco nuovi file, o una nuova cartella di mp3
- eseguo uno script (in php) che fa una specie di controllo tra le
canzoni presenti nel database e i file presenti fisicamente nel disco
- se trova cartelle, o singoli file, che non sono inseriti nel database
(sarebbe sufficiente fare una query dell'URL...), li aggiunge al
database usando come informazioni il nome del file, magari delle
cartelle e magari utilizzando i tag del file (saranno file .ogg).
Credete che una cosa del genere sia fattibile??
Sergej
-- 
http://www.ildeposito.org
Canti di protesta politica e sociale
Archivio di testi e accordi

Ciao,
con php puoi facilmente ottenere la lista di file presenti in una
cartella.
**********************************************************************
$handle=opendir('cfg');
while (false!=($file = readdir($handle))) {
if ($file != "." && $file != "..")
{echo $file.'<br>';}
}
closedir($handle);
**********************************************************************
Fai la scandione di questi file ed uno per uno verifichi la presenza
nel DB... se non è presente lo aggiungi.
Non soi se è questo che intendevi...
Ciao
Alex


Caspita stavo postando qui per fare la stessa identica domanda!
Ho da risolvere lo stesso problema, ma invece di mp3 si tratta di immagini.
Anche io pensavo di far leggere a php la lista dei file e se non 
esistono inserirli (e se sono stati cancelllati però cancellarli anche no?).
Unico dubbio sarebbero i miliardi di query che si farebbero, se son 
tanti i files.
E poi la mia dovrebbe essere una cosa automatizzata dal server, nel 
senso che io non lancio nessuno script...
Per ora brancolo un pò nel buio.....ne approfitto di questo thread per 
leggere le risposte che credo facciano al caso mio!
CIao

 senso che io non lancio nessuno script...
Beh, la soluzione che mi avete indicato sembra essere interessante...
NEl mio caso pensavo di fare partire questo script "a comando".
Anzi, potrei eseguire lo script solo nella cartella interessata, per
evitare che si facciano milioni di query... :)


Ciao,
per eliminare i file non + presenti consiglierei questo approccio:
1) Setto nella tabella con i nomi dei file un  flag_controllo con
valore 0
2) Scansione Lista File
3) Per ogni file verifico l'esistenza
-- Se esiste: setto un flag_controllo nel db a 1
-- Se non esiste: inserisco a sistema e setto un flag_controllo nel db
a 1
4) Elimino tutti i record dove flag_controllo=0
Probabilmente esistono logiche + performanti :-D
Per eseguire questa cosa in automatico puoi schedulare lo script sul
server ad ore precise (cerca crontab se il server è linux)... oppure
colleghi lo script a qualche evento particolare.
Ciao Ciao
Alex