Avatar billede webcreator Nybegynder
11. september 2004 - 23:04 Der er 4 kommentarer og
1 løsning

Tjek om der er referencer i databasen til alle filer

Hej Eksperter.

Jeg ønsker at undersøge, om jeg har filer på min server, som der ikke er noget link til (dvs. filer der bare optager plads).

I min database har jeg links til alle disse filer, som er inddelt med flg. mappe-struktur :

index.php
files
  |
  |-- Andet
  |-- Beskrivelser
  |-- Contributions
          |- dokument.txt
          |- kombination.xls

Er det muligt at lave en form for løkke der går ned i alle undermapper i mappen "files"? Hvert filnavn skal så bare tjekkes i DB'en vha. en simpel select.

- Jeg kan godt leve med at skulle lave et tjek for hver mappe, hvis det er nemmere. Der er kun ca. 15 stk.
Avatar billede webcreator Nybegynder
11. september 2004 - 23:08 #1
Jeg skal vist egentlig bare vide, hvordan jeg laver en løkke der går en mappe igennem for filer - resten burde jeg kunne lave :)
Avatar billede webcreator Nybegynder
11. september 2004 - 23:19 #2
Avatar billede webcreator Nybegynder
11. september 2004 - 23:30 #3
Hermed løsningen til alle andre :

include("config.php");

$folder = "Andet";

if ($handle = opendir("files/$folder")) {
    echo "Directory handle: $handle<br>";
    echo "Flg. filer findes ikke i databasen:<br>";
   
    while (false !== ($file = readdir($handle))) {
       
        $query1 = mysql_query("SELECT `file` FROM files WHERE `file` = '$file'") or die(mysql_error());
        $output1 = mysql_fetch_array($query1);
       
        if (!$output1["file"]) echo "$file<br>";
       
    }
   
}
Avatar billede webcreator Nybegynder
11. september 2004 - 23:30 #4
.
Avatar billede olebole Juniormester
12. september 2004 - 01:42 #5
<ole>

Eller sådan:

include("config.php");

$folder = "Andet";

if ($handle = opendir("files/$folder")) {
    echo "Directory handle: $handle<br>";
    echo "Flg. filer findes ikke i databasen:<br>";
   
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            $query1 = mysql_query("SELECT `file` FROM files WHERE `file` = '$file'") or die(mysql_error());
            $output1 = mysql_fetch_array($query1);
           
            if (!$output1["file"]) $s .= "$file<br>";
        }
    }
    echo $s;
}

Så sparer du et par database kald - og laver en mere effektiv udskrivning  ;o)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester