Page 1 sur 1

Supprimer image + données sql correspondantes

Posté : 29 déc. 2008, 18:00
par ekzouille
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 !

Posté : 29 déc. 2008, 18:42
par animithra
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;

Posté : 30 déc. 2008, 00:50
par Aureusms
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

Posté : 30 déc. 2008, 13:05
par ekzouille
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]

Posté : 30 déc. 2008, 18:24
par Aureusms
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);
?> 

Posté : 30 déc. 2008, 18:38
par ekzouille
Merci infiniment, ca fonctionne, c'est merveilleux!

Tres bonne année à toi !