Page 1 sur 2

supprimer un fichier

Posté : 05 juil. 2010, 17:27
par fabrice88250
Bonjour,
lorsque je veus supprimer des données stockées dans ma base de données j'utilise une requete sql :
     $result=mysql_query("DELETE FROM IWinfonews WHERE id=$id");
maintenant et toujours daans cette meme base je rentre des nom de fichiers qui sont stocké sur le serveur du site.
par exemple j'ai un champs "nom" avec pour valeur : jonquille et une champ photos avec pour valeur : jonquille.jpg
avec ma requette je supprime bien donc tout le contenu de la base de données mais pas la photos jonquille.jpg qui est stocké sur le serveur.

Comment faire pour que cette photo soit supprimée physiquement du sereur en meme temps que les infos de la base ?

Re: supprimer un fichier

Posté : 05 juil. 2010, 18:08
par fafa1107
va voir de ce coté ce coté bien entendu il faudra recuperer le nom du fichier que tu veut supprimer avant de le supprimer de la BDD

Re: supprimer un fichier

Posté : 05 juil. 2010, 18:36
par fabrice88250
je viens d'essayé avec Unlink. j'ai le bon chemin pour mon fichier mais rien ne se supprime. pourquoi ?
en premier je fais supprimer le fichier (marche pas) puis après les infos qui sont dans la base de données (sa marche).


<?php
include("../connexion-sql.php");
	  
$id = $_GET["id"];
		
$requete = mysql_query("SELECT * FROM IWmagazines WHERE id=$id"); 
while( $result = mysql_fetch_array( $requete ) )
{ 
echo 'Fichier a supprimer : '.$result['PDF'].'<br/>';
unlink ("../../magazines/" .$result['PDF']);  
echo 'Fichier supprimé <br/>';
} 

	
$resultbd=mysql_query("DELETE FROM IWmagazines WHERE id=$id");
if (!$resultbd) 
{
echo "<img src='../images/close.png' />La mise à jour a échouée. Contactez l'administrateur du site<br/>";
} 

else 
{
echo " <img src='../images/check.png' /> Actualité supprimée. Elle n'apparaitra plus sur le site<br/>";

}
mysql_close();
?>

Re: supprimer un fichier

Posté : 05 juil. 2010, 18:43
par fafa1107
as tu bien lu toute la page que je t'ai passé en lien?
Il faut avant de supprimer le fichier ouvrir le repertoire dans lequel se trouve le fichier en question.
Et tes autorisations sont elles correctes?

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:17
par fabrice88250
Bon je comprend pas trop.
j'ai essayé d'ouvrir et lire le repertoire mais sa ne me supprime toujours pas mon fichier.

<?php
include("../connexion-sql.php");
	  
$id = $_GET["id"];
		
$requete = mysql_query("SELECT * FROM IWmagazines WHERE id=$id"); 
while( $result = mysql_fetch_array( $requete ) )
{ 
echo 'Fichier a supprimer : '.$result['PDF'].'<br/>';
$ouverture = opendir ("../../magazines"); 
$dossier = "../../magazines";

$lecture = readdir($ouverture);
$fichier = $result['PDF'];
$chemin = $dossier."/".$fichier;
unlink ($chemin);  
echo 'Fichier supprimé <br/>';
closedir($ouverture); 



} 

	
$resultbd=mysql_query("DELETE FROM IWmagazines WHERE id=$id");
if (!$resultbd) 
{
echo "<img src='../images/close.png' />La mise à jour a échouée. Contactez l'administrateur du site<br/>";
} 

else 
{
echo " <img src='../images/check.png' /> Actualité supprimée. Elle n'apparaitra plus sur le site<br/>";

}
mysql_close();
?>
 

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:29
par fafa1107
les noms de tes fichiers que tu veut supprimer se touvent dans le champs PDF de ta table?

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:34
par fabrice88250
oui c'est ça. mais sa fonctionne pas

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:37
par fafa1107
quel est l'organisation de ton site ou se trouve les fichiers a supprimer(dossier et position du dossier par rapport a la racine?)

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:40
par fabrice88250
mes pdf sont dans un répertoire 'magazines' qui se trouve à la racine du site.
mon code php se trouve par rapport a la racine du site dans un repertoire 'admin' et un sous repertoire 'mag' qui contient mon code suppression.php.

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:52
par fafa1107
esaaye ce code:
<?php
include("../connexion-sql.php");
 if(isset($_GET['id']))  
{      
$id = $_GET["id"];
               
$requete = mysql_query("SELECT * FROM IWmagazines WHERE id=$id");
while( $result = mysql_fetch_array( $requete ) )
{
echo 'Fichier a supprimer : '.$result['PDF'].'<br/>';
$dossier_traite = "magazines";
 
$repertoire = opendir($dossier_traite); //on définit le répertoire dans lequel on souhaite travailler
 
$fichier=$result['PDF'];

$chemin = $dossier_traite."/".$fichier; //on définit le chemin du fichier à effacer
 
//si le fichier n'est pas un répertoire
if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier))
       {
       unlink($chemin); //on efface
       }

closedir($repertoire);


}

       
$resultbd=mysql_query("DELETE FROM IWmagazines WHERE id=$id");
if (!$resultbd)
{
echo "<img src='../images/close.png' />La mise à jour a échouée. Contactez l'administrateur du site<br/>";
}

else
{
echo " <img src='../images/check.png' /> Actualité supprimée. Elle n'apparaitra plus sur le site<br/>";

}
mysql_close();
}
 else
{echo" la variable $id n'as pas été crée";}
?>

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:55
par fabrice88250
#-o le fichier est toujours présent sur le serveur.
mon repertoire 'magazines' est en 777 en plus. je comprend pas pourquoi sa ne fonctionne pas.

Re: supprimer un fichier

Posté : 05 juil. 2010, 19:59
par fafa1107
affiche la variable chemin avec un echo pour voir si elle contient bien le chemin vers le fichier a supprimer?
et la variable id est elle bien cree? je t'ai rajouté un isset pour verifier

Re: supprimer un fichier

Posté : 05 juil. 2010, 20:04
par fabrice88250
j'ai fais un echo $chemin;
j'ai bien le bon chemin qui vas au fichier qui s'affiche : ../../magazines/mag1.pdf

idem avec l'ajout du isset

Re: supprimer un fichier

Posté : 05 juil. 2010, 20:17
par fafa1107
alors la je botte en touche desolé je vois pas ce qui coince. enfin je n'ai jamais utilisé cette fonction je recherche en meme temps que toi.
Desolé. Je testerai ca plus tard et si j'ai du nouveau je te tiendrai au courant.

Re: supprimer un fichier

Posté : 05 juil. 2010, 21:16
par AB
Il faut avant de supprimer le fichier ouvrir le repertoire dans lequel se trouve le fichier en question.
Depuis quand ? Non c'est pas nécessaire.