Page 1 sur 1

Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 05 mars 2021, 10:56
par JAG11
Bonjour
Je suis un grand novice mais je commence à arriver à certaines choses.

J'ai réussi à uploader une image, la stocker dans un répertoire, en faire une copie réduite, la stocker dans un autre répertoire, et les 2 chemins sont stockées en BDD MySQL.

Maintenant quand je supprime la ligne d'enregistrement BDD, j'aimerais au préalable supprimer les images. Comme je connais les chemins je pensais que cela été facile avec unlink mais mon code ne marche pas. Je suis que c'est possible mais comment? Et je compte ici sur votre aide eclairée.

Code : Tout sélectionner

//PREPARATION REQUETE suppression images associées $sql = 'SELECT Logo, Logo_Reduit FROM t_associations WHERE Id_Assos=:num LIMIT 1 '; // On prépare la requête $query = $db->prepare($sql); // On exécute la requête $query->execute(); require_once('../close.php'); $Logo['logo']; $LogoReduit['Logo_Reduit']; $ouverture = opendir("upload"); // Maintenant que le répertoire est ouvert, on le lit : $lecture = readdir($ouverture); unlink($Logo); closedir($ouverture); // On n'oublie pas de fermer ce qu'on a ouvert. ;-} $ouverture = opendir("reduction"); // Maintenant que le répertoire est ouvert, on le lit : $lecture = readdir($ouverture); unlink($LogoReduit); closedir($ouverture); // On n'oublie pas de fermer ce qu'on a ouvert. ;-}
Merci beaucoup

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 05 mars 2021, 11:47
par or 1
il n'y a pas besoin d'ouvrir et fermer un repertoire pour pouvoir supprimer un fichier.

echo $Logo;
unlink($Logo);
si l'echo n'affiche pas ce qui est attendu, c'est que $Logo ne contient pas le chemin attendu, que la ligne :
$Logo['logo'];
ne fait pas le job.

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 05 mars 2021, 16:01
par JAG11
D'accord mais pourquoi, il récupére le chemin dans la base la BDD

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 05 mars 2021, 17:33
par Ryle
Salutations !

En l'occurrence ton script exécute une requête sur la base de données, mais il n'en regarde pas le résultat (avec un fetch ou autre) et ne stocke par le résultat dans tes variables $Logo ou $LogoReduit.

Ceci ne sert à rien :
$Logo['logo'];
$LogoReduit['Logo_Reduit'];

Il faut récupérer les informations de ta requête et les mettre dans $Logo et $LogoReduit pour pouvoir ensuite utiliser ces variable dans ton unlink (et comme indiqué par or1, les opendir ou readdir sont inutile. Si tu demandes à php de supprimer un fichier, il va le supprimer, pas besoin de l'accompagner ou de lui tenir la porte ;))

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 05 mars 2021, 21:32
par JAG11
Merci ma requête sert à récupérer les chemins de mes fichiers uploader.
Lorsque je vais supprimer la ligne dans la table je veux supprimer les deux images LOGO et LOGOREDUIT.

Et en tant que débutant, je rame encore sur ce point.
Un petit peu d'aide pour m'éclairer sur les fetch, car j'ai du mal avec.
Merci

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 05 mars 2021, 21:50
par or 1
toujours lire l'aide et ses exemples :
https://www.php.net/manual/fr/pdostatement.fetch.php

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 06 mars 2021, 00:30
par JAG11
Merci mais je l'ai lu et je rame quand même un peu

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 06 mars 2021, 19:40
par two3d
Si tu fais des petits sites, commence avec le style procédural, l'orienté objet est plus complexe que le procédural:

https://www.php.net/manual/fr/mysqli-re ... -assoc.php

Re: Supprimer des images stockées en repertoire avec chemin en BDD

Posté : 07 mars 2021, 13:21
par JAG11
Merci pour le conseil et j'ai compris l'usage de fetchColumn();
Enfin, Ouf