Nur Bilder aus Verzeichnis löschen die nicht in Datenbank stehen

funnyzocker

Erfahrenes Mitglied
Hallo.
Im moment versuche ich ein Script hinzubekommen das mir alle Bilder aus einem Ordner löscht die nicht in der Datenbank stehen. Leider löscht das script alle Dateien ausser der die im ersten DB eintrag sind.

PHP:
include("connect2db.inc.php");
//Fotos in Array einlesen
 $sql="SELECT pic_id, pic_thumb FROM kommentare";
 $erg=mysql_query($sql);
 $verz=opendir ('upload/screens/');
 $row = mysql_fetch_assoc($erg);
 $zaehler=0;
 while ($file = readdir ($verz)) {
 
  if (in_array($file,$row) != true){ 
 print_r ($file);
 unlink("upload/screens/$file");
  $zaehler=$zaehler+1;
 echo "
 ";
 }
 }
 echo "Es wurden insgesamt " . "$zaehler" . " Dateien gelöscht"; 
 closedir($verz); 
 mysql_free_result($erg);
 
Du solltest in Deine while-schleife mal einbauen, dass das Array aus mysql_fetch_assoc() mit ausliest, ansonsten bekommst du daraus nur "Array", somit ist die Funktion "unlink" dann nur SO bestückt: "unlink(dateiname, ARRAY)"

LG
Andy
 
Zurück