Supprimer image + données sql correspondantes

Eléphanteau du PHP | 21 Messages

29 déc. 2008, 18:00

Bonsoir,

Voila,
J'ai fait un formulaire d'upload avec enregistrement de données (titre, description, url) dans mysql.
Maintenant j'aimerai pouvoir creer l'option Supprimer et ainsi effacer non seulement l'image mais la ligne de tableau qui lui correspond (comme mon menu est généré par le tableau mysql, ca serait bete d'afficher un lien d'une image qui n'existe plus)
J'ai la fonction, qui fonctionne (Hihaaa), pour supprimer l'image (avec unlink)
 
$adresse="../1/";
if(isset($_GET['nom']))
     {
          $nom=''.$adresse.$_GET['nom'].'';
          unlink($nom);
          echo 'Le fichier "'.$_GET['nom'].'" a été effacé !<br>';
     }
$dossier = opendir($adresse);
while ($Fichier = readdir($dossier))
{  
     if ($Fichier != "." && $Fichier != "..") 
     { 
          echo '<a href="filelist.php?nom='.$Fichier.'">Supprimer</a> => <a href='.$adresse.$Fichier.' target="_blank">'.$Fichier.'</a><BR>'; 
     }
}
closedir($dossier);
mais je galere pas mal pour l'associer au delete MySQL

J'en demande beaucoup, j'avoue, mais grace a vous j'apprend tellement que ca serait dommage de ne pas vous poser la question :lol:
Merci d'avance !

Eléphant du PHP | 174 Messages

29 déc. 2008, 18:42

Bonsoir,

Si l'url qui figure dans la base de données est liée à l'url de l'image que tu supprimes, tu peux faire :

Code : Tout sélectionner

DELETE FROM maTable WHERE url = urlEnregistrement;
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

ViPHP
ViPHP | 1996 Messages

30 déc. 2008, 00:50

Je rajouterai

Code : Tout sélectionner

$requete = "DELETE FROM maTable WHERE url = 'urlEnregistrement' LIMIT 1";
Au cas où.

Note : fais gaffe avec ton $_GET : de cette façon la personne peut effacer quasiment toutes les photos
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 21 Messages

30 déc. 2008, 13:05

Voila, j'ai essayé du mieux que j'ai pu et le truc le plus propre, mais completement bugué encore, est ce petit bout de code.
Le probleme c'est de combiné le delete de fichier du dossier + le delete dans la BDD, si vous avez une idée..

Merci beaucoup, d'avance !
<?php 
$adresse="creation/";
if(isset($_GET['nom']))
     {
          $nom=''.$adresse.$_GET['nom'].'';
          unlink($nom);
          echo 'Le fichier "'.$_GET['nom'].'" a été effacé !<br>';
     }
$dossier = opendir($adresse);
while ($Fichier = readdir($dossier))
{  
     if ($Fichier != "." && $Fichier != "..") 
     { 
          echo '<a href="filelist.php?nom='.$Fichier.'">Supprimer</a> => <a href='.$adresse.$Fichier.' target="_blank">'.$Fichier.'</a><BR>'; 
		  mysql_query('DELETE FROM upload WHERE id = '.$_GET['nom'].'') or die("Erreur SQL :".mysql_error());
     }
}
closedir($dossier);
?>
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 1996 Messages

30 déc. 2008, 18:24

Moi je le mettrez plutôt en haut...
Toujours avec de la prudence concernant $_GET...
<?php 
$adresse="creation/";
if(isset($_GET['nom']))
     {
          $nom=''.$adresse.$_GET['nom'].'';
          unlink($nom);
          echo 'Le fichier "'.$_GET['nom'].'" a été effacé !<br>';
          $requete = "DELETE FROM upload WHERE id = '".$_GET['nom']."'";
          mysql_query($requete) or die("Erreur SQL :".mysql_error());
     }
$dossier = opendir($adresse);
while ($Fichier = readdir($dossier))
{  
     if ($Fichier != "." && $Fichier != "..") 
     { 
          echo '<a href="filelist.php?nom='.$Fichier.'">Supprimer</a> => <a href='.$adresse.$Fichier.' target="_blank">'.$Fichier.'</a><BR>'; 
     }
}
closedir($dossier);
?> 
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 21 Messages

30 déc. 2008, 18:38

Merci infiniment, ca fonctionne, c'est merveilleux!

Tres bonne année à toi !