PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 31-10-2009 15:26:31

t14
Membre
Inscription : 10-09-2009
Messages : 96

Récupérer identifiant image pour suppression

Bonjour,

J'affiche un texte et les images associées issues d'une table php. En cliquant sur une des images, je veux la supprimer dans le dossier. Mais là où j'en suis, je supprime toutes les images affichées !!!!!
J'ai une table pour le texte (manifestations), une table pour les liens images (upload), et les images se trouvent dan le dossier (dossier_upload).

J'affiche le texte + les images associées (id = identifiant unique du texte, id_liaison= identifiant de l'image identique à l'id du texte associé, idpj = identifiant unique du lien image, lien_fichier = chemin permettant l'affichage de l'image) :

$select2 = "SELECT * FROM upload where id_liaison='$id'"; //je sélectionne les images associées au texte
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );

while($row2 = mysql_fetch_array($result2))
{
echo '<a href="./supp_ok_pj.php?mode=suppression&id='.$id.'"><img border=0 height="50" src="http://127.0.0.1/kotoka/gestion/manifestations/test ' . $row2['lien_fichier'] . '"></a>  ';  // affichage des images associés au texte
}

Ainsi, je supprime toutes les images associées au texte, et moi je veux supprimer que celle sélectionnée !
Dans <ital>mode=suppression&id='.$id.</ital>, j'ai essayé de remplacer id par idpj pour récupérer l'identifiant unique de l'image, mais ça marche pô non plus !!!!
Le script de suppression de l'image :

$id = $_GET['id'];

// ---------- suppression fichier image/document -----------------

$select = "SELECT * FROM upload where id_liaison='$id'";

$image_doc = "./dossier_upload";

$ouverture = opendir ($image_doc);
$lecture = readdir($ouverture);
while (false !== ($fichier = readdir($ouverture)))
{
$chemin = $image_doc."/".$fichier;

//si le fichier n'est pas un répertoire
if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier))
{
unlink($chemin);
}

En fait, comment récupérer l'identifiant unique de l'image affichée (idpj) ?

Merci

Dernière modification par t14 (31-10-2009 15:28:29)

Hors ligne

#2 31-10-2009 16:32:37

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer identifiant image pour suppression

$row2['idpj'] ?

Hors ligne

#3 31-10-2009 16:41:42

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Récupérer identifiant image pour suppression

xTG a écrit :

$row2['idpj'] ?

Mais là, je n'affiche plus mon image. Car elle est affichée grâce à $row2['lien_fichier'].
Le lien_fichier est le chemein qui mène à elle !
Je pourrais peut-être retrouver mon identifiant image (idpj) avec le lien_fichier ? Mais comment ?

Hors ligne

#4 31-10-2009 16:45:21

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer identifiant image pour suppression

De quel identifiant image tu parles ?
De son ID dans la base de donnée ?
Si oui j'ai cru comprendre que la clé était idpj.

Sinon pourquoi ne pas passer en lien le "lien_fichier" et delete ce fichier vu que tu as le chemin direct avec la valeur de la variable.

Hors ligne

#5 31-10-2009 16:51:38

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Récupérer identifiant image pour suppression

Tout à fait, l'identifiant de mon image est bien idpj.
Je fais comment pour deleter à partir de "lien_fichier" ??? Comment passer le paramètre du 1° script au 2° ????

Dernière modification par t14 (31-10-2009 17:05:53)

Hors ligne

#6 31-10-2009 17:45:07

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer identifiant image pour suppression

$select2 = "SELECT * FROM upload where id_liaison='$id'"; //je sélectionne les images associées au texte
      $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
       
      while($row2 = mysql_fetch_array($result2))
      {
      echo '<a href="./supp_ok_pj.php?mode=suppression&id='.$row2['idpj'].'"><img border=0 height="50" src="http://127.0.0.1/kotoka/gestion/manifestations/test ' . $row2['lien_fichier'] . '"></a>  ';  // affichage des images associés au texte
      }
      $id = $_GET['idpj'];
      // ---------- suppression fichier image/document -----------------
      $select = "SELECT lien_fichier FROM upload where idpj='$id'";
       
      $result2 = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
       
      while($row2 = mysql_fetch_array($result2))
      {
            unlink($row2['lien_fichier']);
       }

Voilà qui fait l'affaire en ne réutilisant que ce que tu as déjà utilisé.
Mais je te conseillerai de tenter de comprendre les codes que tu récupères sur internet, car comme tu le vois cela devient vite compliqué lorsque l'on ne comprend rien.

Hors ligne

#7 31-10-2009 18:02:44

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Récupérer identifiant image pour suppression

Merci xTG ! Mais en retour j'ai l'erreur Unknown column 'id' in 'where clause'

Et j'ai l'impression de ne pas récupérer, donc de lire l'idpj dans la première partie !!!?

Pffffff ......... sad

Hors ligne

#8 31-10-2009 18:40:31

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer identifiant image pour suppression

La clause where te sers de filtre pour la requête.
Elle récupère tous les champs comportant la valeur que tu lui donnes.

Tu m'as dit que idpj était l'id de ton image dans la base de donnée, si la requête te dis que ce champs n'existe pas c'est que tu ne m'as pas tout dit. ^^

Hors ligne

#9 31-10-2009 18:51:13

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Récupérer identifiant image pour suppression

xTG a écrit :

La clause where te sers de filtre pour la requête.
Elle récupère tous les champs comportant la valeur que tu lui donnes.

Tu m'as dit que idpj était l'id de ton image dans la base de donnée, si la requête te dis que ce champs n'existe pas c'est que tu ne m'as pas tout dit. ^^

Je vais donc te décrire mes tables.
Dans la table manifestations : id (valeur unique), texte, .... (peut importe le reste)
Dans la table upload : idpj (valeur unique), id_liaison (égal à id de manifestations, qui sert d'association de l'élément entre les 2 tables), fichier (nom du fichier), lien_fichier (lien pour retrouver où est enregistré le fichier), extension (extension du fichier).

Et dans la première partie, je n'arrive pas à récupérer l'idpj des images affichées ?? hmm

Hors ligne

#10 31-10-2009 19:03:41

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer identifiant image pour suppression

"SELECT * FROM upload where id_liaison='$id'"
Cette requête travaille sur la table upload et donc te renvoies les idpj si la requête fonctionne.
L'idpj que tu passes ensuite par méthode GET à l'autre page qui travaille sur la même table.

Ton message d'erreur est donc non cohérent, revérifies ce que tu as tapé... hmm
Tu dois travailler sur une autre table(manifestations ?) ou bien tu as une faute de frappe quelque part.
Mais dans l'ensemble si tes images sont affichées il n'est pas possible de ne pas récupérer idpj.

Hors ligne

#11 31-10-2009 19:38:59

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Récupérer identifiant image pour suppression

C'est ça qui est bizarre !!! Ma requête devrait fonctionner ...... mad

J'comprend rien !!!!!!!!! Je vois pas où est l'erreur ????

$select2 = "SELECT * FROM upload where id_liaison='$id'";
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );

Sinon, plutôt que de faire <a href="./supp_ok_pj.php?mode=suppression&id='.$id.'"><img border ..... , y'a pas une écriture qui permette de supprimer directement une image en cliquant dessus ?

Hors ligne

#12 31-10-2009 20:34:15

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer identifiant image pour suppression

Si ce que tu as mis en gras est bien ton code alors oui il y a une erreur. ^^
Relis ce que j'ai marqué dans le code présenté.

Enfin pour ta question de simplicité, ton problème se résout en deux manches :
- sélectionner la photo à supprimer
- la supprimer

Donc il a forcement deux phases. ^_-

Hors ligne

#13 01-11-2009 09:21:53

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Récupérer identifiant image pour suppression

Bonjour xTG.
J'ai revérifié le code d'après ce que tu m'avais marqué précédemment.
J'ai modifié  href="./supp_ok_pj.php?mode=suppression&id='.$id.'" en  href="./supp_ok_pj.php?mode=suppression&id='.$row2['idpj'].'"
Là, effectivement, je lis l'identifiant (idpj) de l'image. Ca avance .... smile
Par contre, le script de suppression me dit :

Erreur : Unknown column 'id' in 'where clause'  sad

Hors ligne

#14 01-11-2009 09:43:29

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Récupérer identifiant image pour suppression

C'est bonnnnnnnnnnnnnnn !!!!!! lol Ca marche !!!!!!! tongue

J'ai modifié mon script de suppression, et je supprime donc les liens de l'image dans la base ainsi que l'image elle-même dans le dossier .... cool

Je te remercie pour l'aide que tu m'as apporté ... tongue

A ++

Hors ligne

#15 01-11-2009 10:20:06

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer identifiant image pour suppression

Il n'y a pas de quoi. ^_-

Hors ligne

Pied de page des forums