je suis entrain d'essayer de réaliser un buot de code qui permettrait de supprimer des images dans un dossier si elles ne sont pas utilisées dans la base de donnée.
Le problème est que je n'arrive à rien. Soit j'arrive à tout supprimer soit ça ne supprime rien !
Pouvez-vous franchement m'aider sur ce coup là ?
Je suis perdu dans ce que je dois faire.
Comment dire à PHP de supprimer des images qui ne se trouvent pas dans la base de donnée?
Mon principe est le suivant :
1. Connexion à la table photo pour choper différentes infos telles que :
- le nom du dossier utilisateur (ex.: VSKYSLV2QQH7Q5F)
- le chemin et le chemin relatif ...
2. Connexion à la table user pour vérifier si le user existe toujours dans la base. Si il existe plus, on supprime le dossier entier. Sinon, on scanne le répertoire et on vérifie si les images existent dans la table_photo et si elles n'existent pas, on les supprime (c'est ici que ça me pose problème).
Svp, aidez moi, ...
<?php
// Définition des variables globales
$reldir = '/home/a50/www/temp/nice';
// Connection à la base de donnée photos Neptune
$Neptdb = mysql_connect('localhost', 'USER', 'PASS');
mysql_select_db('a50',$Neptdb);
$sql_photo = "SELECT photo_grande FROM tbl_photo";
$req_photo = mysql_query($sql_photo) or die('Erreur SQL !<br>'.$sql_photo.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req_photo)) {
$url_big = $data['photo_grande'];
$dirname=basename(dirname($data['photo_grande']));
$glob_path = pathinfo($data['photo_grande']);
$path = substr ($glob_path['dirname'], 28);
//echo $path.'<br />';
// Connexion à la table USER pour vérifier correspondance
$sql_Uref = "SELECT user_ref FROM tbl_user WHERE user_ref = '$dirname'";
$req_Uref = mysql_query($sql_Uref) or die('Erreur SQL !<br>'.$sql_Uref.'<br>'.mysql_error());
$nb = mysql_num_rows($req_Uref);
if ($nb == 1) {
if ($handle = opendir($reldir.'/'.$path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo 'FICHIER: '.$file.'<br />';
//$test='http://www.150.be/temp/nice/';
$sql_photo_test = "SELECT photo_grande FROM tbl_photo WHERE photo_grande = '$url_big'";
$req_photo_test = mysql_query($sql_photo_test) or die('Erreur SQL !<br>'.$sql_photo_test.'<br>'.mysql_error());
$nbresult = mysql_num_rows($req_photo_test);
$datas = mysql_fetch_assoc($req_photo_test);
$url_found = $datas['photo_grande'];
echo 'URL: '.$url_found.'<br />';
if ($nbresult >= 1) {
$pos = strpos($url_found,$file);
if ($pos === false) {
echo "L'image ne se trouve pas dans la liste <br /><br />";
unlink($reldir.'/'.$path.'/'.$file);
} else {
echo '<font color="red"><b>OK</b></font><br /><br />';
}
}
}
}
closedir($handle);
}
}
}
?>
Merci