hai provato e farlo senza ciclo??...forse funziona come le query o meglio il ciclo del mysql_fetch_array se usi il ciclo stampa tutti i record ( in questo caso i files) se invece nn usi il ciclo ti stampa l'ultimo record...prova così

Codice PHP:
if ($handle opendir('../blog')) {
$file readdir($handle);
if (
$file != "." && $file != ".." && $file != "ricerca.php") {
echo 
"<LI CLASS=\"mappa\"><a href=\"../blog/$file\">";
echo 
substr("$file",0,-4);
....