Dateien mit Übereinstimmung aus DB löschen

Beezle92

Grünschnabel
Hallo Zusammen

Ich stehe vor einem logischem Problem. Ich möchte Dateien in einem Ordner löschen welche nicht in der DB aufgeführt sind.

Doch ich komme einfach auf keine Lösung. Bin schon einige Zeit daran.

Bisher mein erfolgreichstes Ergebnis:

PHP:
$path = "images/medien/.";
$handle = opendir($path); 

if($dir=opendir($path)){
	while($file=readdir($dir)){
		if ($file != "." && $file != ".."){
			$files[]=$file;
		}
	}
	closedir($dir);
}


$del_sql = "select bild from mdb_medien";
$del_query = mysql_query($del_sql);

while($db_array = mysql_fetch_array($del_query)){
	if(is_file($db_array['bild'])){
		$db_files[]=$db_array['bild'];
	}
}


for ($i=0;$i < sizeof($db_files); $i++){
       for ($j=0;$j < sizeof($db_files); $j++){
            if("images/medien/".$files[$j] == $db_files[$i]){
                echo "UEBEREINSTIMMUNG";
			} else {
				echo "löschen";
			}
        }
}
Dies ergibt bei "zwei Dateien in der DB und die selben zwei im Ordner"

löschen übereinstimmung übereinstimmung löschen


Ich bin dankbar für jede Hilfe.

Mfg
Beezle
 
Zuletzt bearbeitet:
$files: Array ( [0] => book.jpg [1] => lamb.jpg )
$db_files: Array ( [0] => images/medien/lamb.jpg [1] => images/medien/book.jpg )
 
Zuletzt bearbeitet:
juhu, ich habs geschafft

die lösung:
PHP:
$path = "images/medien/.";
$handle = opendir($path); 

if($dir=opendir($path)){
	while($file=readdir($dir)){
		if ($file != "." && $file != ".."){
			$files[]="images/medien/".$file;
		}
	}
	closedir($dir);
}

$del_sql = "select bild from mdb_medien";
$del_query = mysql_query($del_sql);

while($db_array = mysql_fetch_array($del_query)){
	if(is_file($db_array['bild'])){
		$db_files[]= $db_array['bild'];
	}
}


$i = 0;
$anzahl = count($files);
while($i<$anzahl){
	if(!in_array($files[$i],$db_files)){
		unlink($files[$i]);
	}
	$i++;
}
 
Zurück