Tiro su questo 3d per condividere questo script un po' banale ma per me è stato l'uovo di Colombo, visto che appunto era facile ma non avevo pensato a questa soluzione.
Ringrazio alcio74 che mi ha illuminato su in_array() che non conoscevo... 
lo script che confronta i valori presi dal DB con i file presenti nella cartella non lo metto perchè trooooppo banale... basta ciclare i risultati e vedere se con file_exists esiste il file...
passo direttamente al secondo, quello che legge i file in una cartella, li mette in un array e mi dice se hanno corrispondenza con un campo del DB...
Codice PHP:
// io ho messo il desktop per assurdo e funziona.. sto facendo questo lavoro in locale...
// ma volendo si può evitare di mettere il percorso assoluto e mettere il nome di una cartella nel webserver...
// la path probabilmente sarà senza slash..
$path = "C:\Documents and Settings\utente\Desktop";
#apriamo la cartella
$cartella = opendir($path);
#creiamo un ciclo che legga i contenuti e li metta nell'array
while ($file = readdir($cartella)) {
$file_array[] = $file;
}
#facciamo un ciclo foreach per prendere gli elementi
foreach ($file_array as $file) {
#tutti tranne quelli che iniziano per "." o per ".."
if ( $file == ".." || $file == ".") {
continue;
}
}
$con=mysql_connect($hostname,$username,$password) or die("Connessione non riuscita: " . mysql_error());
mysql_select_db("nome_DB") or die("Selezione del database non riuscita");
$np = "SELECT * FROM tabella";
$query = mysql_query($np);
while($riga = mysql_fetch_array($query)) {
// nella mia tabella i nomi relativi ai PDF non hanno estensione, in quanto sono nomi.
// aggiungo quindi alla variabile l'estensione altrimenti non trova niente..
$riga = $riga["nome"] . ".pdf";
// nella mia tabella ci sono campi con il nome vuoti, per vari motivi.
// per non avere righe vuote a video uso il controllo qua sotto...
if ($riga["nome"] != '') {
if (in_array($riga, $file_array)) {
echo "Trovato $riga
";
} else {
echo "[b]NON TROVATO $riga [/b]
";
}
}
}