IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Suppression de plusieurs photos


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut Suppression de plusieurs photos
    bonjour je suis nouveau et débutant en php
    je souhaiterai une aide pour supprimer mes photos sur mon ftp lier a ma base

    j'ai mon code qui fonctionne pour la photo1 mais je sais pas comment on fait pour les autres
    mon select est bon mais dans la variable resultat je ne sais comment mi prendre

    en faite je crée une page pour administrer des annonces de voitures
    la j'ai réussi que si il veut supprimer une annonce ça supprime de la base mais il faut supprimer les photos qui sont lier sur le serveur ftp
    sinon a force d ajouter des annonces le serveur va être blindé
    alors la j'ai réussi pour une photo mais il faudrait que ça supprime les autres

    donc j'en suis pas très loin mais la je sais pas comment gérer les autres

    la page est un tableau avec les annonces et a droite un checkbox ou on sélectionne celle que l on veux supprimer

    j'ai penser qu'on pouvais concaténer les photos dans la variable resultat

    est ce possible?

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    case "sup_annonces" : { 
     
                        $requete = 'SELECT photo1,photo2,photo3,photo4,photo5 FROM AT_Annonces WHERE IDannonce IN ('.implode(",",($_GET['cocher'])).')';
                    $reponse = mysql_query($requete);
            while ($resultat = mysql_fetch_array($reponse))
                $cheminImage = "images/".$resultat['photo1'] ;
     
     
                          unlink($cheminImage);
            }
     
            //suppression de l'entrée dans la BDD
            $requete = 'DELETE FROM AT_Annonces WHERE IDannonce IN ('.implode(",",($_GET['cocher'])).')';
                   if (mysql_query($requete)) {
                       } 
     
            //header("Location:Paffiche.php?action=suppr_annonces");
     
            break; //fin du case
        }
    en vous remerciant d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    a ta place je mettrai en place un script de nuit qui supprime de ton ftp et de ta base les annonces supprimées dans la journée.. il te suffit de rajouter une colonne suppression ds ta base avec un tinyint à 0 ou 1 ainsi tu positionne le flag à 1si l'annonce est supprimée et donc tu ne l'affiche plus sur ton site.

    et de nuit tu n'as juste qu'à récupérer les annonces les supprimées de la base et de ton ftp.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    merci pour ta réponse mais
    pourquoi les supprimer la nuit au lieu de immédiatement?
    la démarche est intéressante mais faudra quand même que je supprime le tout

    bon en faite la j'ai trouve le moyen de le faire cependant mon soucis est autre maintenant

    j'ai un formulaire de dépôt qui fait que si y a pas de photo il met nofoto.jpg dans le nom du champ

    cependant mon code la supprime et du coup toute les autres annonce qui en ont pas ben le nofoto n y plus

    comment tester si nofoto apparaît dans le nom?

    voici mon code désormais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
      case "sup_annonces" :
                      {
                             //ici cocher est un array => il faut savoir qui a été coché
                        $requete = 'SELECT IDannonce,photo1,photo2,photo3,photo4,photo5 FROM AT_Annonces WHERE IDannonce IN ('.implode(",",($_GET['cocher'])).')';
                        echo '<br>'.$requete; //nous donne la requete et l id de l annonce
                        $reponse = mysql_query($requete);
     
                       while ($resultat = mysql_fetch_array($reponse))
                                {
                                        $ul1 = unlink( "images/".$resultat['photo1'] );
                                        $ul2 = unlink( "images/".$resultat['photo2'] );
                                        $ul3 = unlink( "images/".$resultat['photo3'] );
                                        $ul4 = unlink( "images/".$resultat['photo4'] );
                                        $ul5 = unlink( "images/".$resultat['photo5'] );
     
                                }
                                //suppression de l'entrée dans la BDD
     
     
                                   $requete = 'DELETE FROM AT_Annonces WHERE IDannonce IN ('.implode(",",($_GET['cocher'])).')';
                                  echo '<br>'.$requete; //donne nous ce qui est affiché
                                  if (mysql_query($requete))
     
                                        {
                                                echo '<br>Image "'.$cheminImage.'" supprim&eacute;e dans la base ET sur le serveur';
                                        }
     
     
                                  //header("Location:Paffiche.php?action=suppr_annonces");
     
                        break; //fin du case
                      }

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    soit tu fait un test sur chaque champ photo

    soit tu peux feinter en ne changeant les droits d'acces de ton nophoto.jpeg pour qu'il ne soit pas supprimable.

    Mais la vrai solution serait de revoir ta base:
    • une table photo ou chaque photo a un id et l'id de l'annonce au quelle elle appartient
    • une table annonce ou tu n'as plus les champs photos


    et ainsi tu a juste à sélectionner dans la table photo toute les photos appartenant à l'annonce en fonction de l'id et tu n'as plsu ton probleme de nophoto.

    de plus tu n'as pas à rajouter un champ photo si tu choisis d'autorisé plus de photo pour une annonce tu n'as pas de champ vide ds ta table annonce si il n'y a qu'une seule photo etc..

    en gros tu gagneras en performance en maintenance et en facilité pour coder derrière !

    merci pour ta réponse mais
    pourquoi les supprimer la nuit au lieu de immédiatement?
    ainsi tu soulage ton serveur en journée pour l'utilisateur ça sera plus rapide quand il supprimera une annonce et tout les traitements lourds tu les effectue de nuit: ainsi tu peux imaginer un script qui tourne une fois par semaine et qui supprime toutes les photos plus utilisées

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    merci pour tes explications

    cependant si je lui donne des droits restreint je pense que j'aurai un warning sur le unlink access denied non?

    je suis pas un expert en bdd j'ai crée un truk tout simple en fonction de mes compétences et mes faibles connaissances

    j'ai une table AT_Annonce et dedans j'ai
    IDannonce
    Datedepot
    Titre
    marque
    prix
    Annee
    style
    couleur
    Km
    detail
    photo1
    photo2
    photo3
    photo4
    photo5

    voila je sais c'est pas formidable mais bon je sais pas trop comment optimiser au mieux ma table

    sinon comment on fait un test sur chaque champ photo?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    alors pr optimiser ta base peux tu me montrer les autres tables que tu as?

    pour le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($resultat['photo1'] != 'nophoto.jpeg'){
    $ul1 = unlink( "images/".$resultat['photo1'] );
    }

  7. #7
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    oh ben ça va être vite fait j'en ai 2 en tout la deuxième c'est

    AT_marque et dedans j'ai mis id_marque et Libellemarque

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    et j'imagine donc que c'est pour des annonces de voiture?

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    tout a fait

    en faite c est un site vitrine y a pas de vente dessus
    donc je crée des pages admin pour inserer ou supprimer des annonces
    c est pas le grand mega site

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Du coup je découperai tout ça comme ça:

    AT_Annonce
    --------------
    IDannonce
    Datedepot
    Titre
    id_voiture

    AT_voiture
    -------------
    id_voiture
    id_modele
    prix
    couleur
    km
    detail

    AT_photo_voiture
    ---------------------
    id_voiture
    id_photo

    AT_photo
    ------------
    id_photo
    nom_photo
    path_photo

    AT_modele
    --------------
    id_modele
    Libellemodele
    style
    id_marque

    AT_marque
    --------------
    id_marque
    Libellemarque
    à ajuster mais en gros l'idée c'est de respecter le but d'une bdd c'est à dire classer, trier et organiser les données.

  11. #11
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    houla ça me donne le tournis lol

    tu la décortiqué y a pas a dire, je me la met sur un fichier texte pour l idée de la prochaine base car la faudrait que je revois tout mon code mais y a des choses que je pige pas trop comme pourquoi détaillé autant pour mon besoin actuel
    bon le problème c est que la ou je fais ma formation on a pas bien vu le sujet je dirai survoler alors j'ai du mal sur le principe

    mais merci c'est super sympa de prendre le temps de m'éclaircir la dessus


  12. #12
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    bonjour

    j'ai une toute autre question concernant mes photos

    je suis bloquer sur le problème de mon formulaire de modification de l'annonce

    comment on fait sur un input type file qu'il garde la valeur de ma variable ?

    pour être plus précis j'ai fait mon formulaire pour qu'il affiche ce qui a déjà été inscrit lors du dépôt

    alors sur du input text no soucy

    mais dans le champ du type file a coté de parcourir, j'ai lu que l'on ne pouvait pas par des raisons de sécurité mais quelqu'un a t il une astuce pour contourner le problème

    car la ça efface systématiquement les autres anciennes valeur s'il y a rien dans mon input file

    merci d'avance

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Citation Envoyé par baddevil Voir le message

    car la ca efface systématiquement les autres anciennes valeur si y a rien dans mon input file

    merci d avance
    le plus propre pr moi et de reafficher la photo que l'utilisateur à enregistrer.
    et si il veut la modifier faire un petit bouton à coté de chaque photo pr en enregistrer une nouvelle

    Sinon pr revenir à la base de données:
    comme pourquoi détailler autant pour mon besoin actuel
    plusieurs raison : déjà ta base en l'état n'est pas facilement évolutive imaginons du jour au lendemain on te demande de rajouter une photo de plus tu va devoir revoir tout ton code pr prévoir une photo de plus puisque tu as des champs du genre photo 1, ...,photox. Donc dans chaque requete chaque affichage tu vas devoir modifier quelque chose.

    En structurant plus ta données tu n'as rien à faire puisque tu n'as pas un nombre limité de photo pr chaque annonce.

    Autre exemple: dans ta solution c'est l'utilisateur qui rentre la marque j'imagine ainsi cela peux être nimporte qu'elle marque je peux marque bidule tartempion.. chaque marque n'est pas unique dans ta base alors que ds le modèle que je te donne chaque marque à un id si tu veux rajouter une marque rien à changer si tu veux savori le nombre d'annonce pr une marque c'est imediat etc..

  14. #14
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    merci boo64 pour toute tes explications

    j'avais mis justement la photo en prévisualisation et la
    j'ai effectivement déjà pris la solution de mettre un bouton pour chaque photo
    je suis en plein de dedans

    je comprend pour la base effectivement c'est bien clair

  15. #15
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    bonjour j'en ai un autre qui pointe son nez

    j'ai fais un formulaire demodif pour chacune de mes photos
    cependant dans mon form j avais oublier de mettre enctype="multipart/form-data"
    donc il me faisait bien mon update dans ma base en mettant le nom du fichier mais par contre ne le téléchargeait pas
    mais maintenant que je l'ai mis il me fait le contraire il télécharge bien le fichier mais ne fait plus rien niveau update (champ vide) récupère plus le nom du fichier??? quelqu’un un aurait il une idée ??

    en plus il me met mise a jour bien effectué!!?

    form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <form method="post"   enctype="multipart/form-data" name="photo1"  action="updateannonce.php">
     
       <input type="hidden" name="action" value="modif_photo1">
    	 <input type="hidden" name="IDannonce" value="[var.IDannonce;noerr]">
     
     
             <table border="1">
     
               <tr>
                <td>[var.photo1;noerr]</td>
                <td><img  width="150px" alt="image" src="images/[var.photo1;noerr]"/></a></td>
              </tr>
              <tr>
                <td><input type="file" name="photo1" id="photo1"  /><br></td>
                <!--<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />-->
              </tr>
            </table>
            <p> <input type="submit" name="validate" value="Valider" style="width:130px" /></p>
    </form>
    php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     case "modif_photo1":
     
                    $destination = "images/".$_FILES['photo1']['name'] ;
        	          $resultat = move_uploaded_file($_FILES['photo1']['tmp_name'] , $destination);
        	          echo($resultat);
        	          if ($resultat == FALSE)
              {
                  echo("echec");
              }
              else
              {
                echo("transfert reussi verifier dossier");
              }
     
            $requete = "UPDATE AT_Annonces SET photo1='".$_POST['photo1']."'
            WHERE IDannonce='".$_POST['IDannonce']."'";
             $resultat = mysql_query($requete);
     
                           echo($requete);
     
     
                          //test si maj effectuée
                        if(mysql_affected_rows() == -1)
                        {
                          echo("mise a jour non effectuée");
                        }
                        else
                        {
                          echo(" votre mise a jour a bient été effectué ");
                          echo ("<a href=\"Paffiche.php?action=ModifAnnonce\">retour au annonces pour modifier</a>");          
                        }
            break;

  16. #16
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Regarde pour commencer dans ta base si les noms de fichiers sont correctement enregistrés

  17. #17
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    salut boo

    ben nom justement il me l enregistre seulement dans la base si je met pas l' enctype!!! sans ça oui la base ce met a jour mais malheureusement j'upload plus rien

    si je laisse l'enctype j'ai fais un echo de ma requete et il recupere pas le nom dans mon champ input

    regarde mon echo avec l'enctype:
    1transfert réussi vérifier dossierUPDATE AT_Annonces SET photo1='' WHERE IDannonce='132' votre mise a jour a bien été effectué retour au annonces pour modifier

    mon set photo1 est vide !!

    et mon echo sans l'enctype
    echecUPDATE AT_Annonces SET photo1='audi.jpg' WHERE IDannonce='132' votre mise a jour a bien été effectué retour au annonces pour modifier

    j'ai un échec de l'upload forcement mais prend bien le nom du fichier

  18. #18
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    en faite mon update fonctionne car il me met un champ vide a la place de l'ancien nom dans la base
    c'est juste qu'il ne récupère pas le nom du fichier dans mon input

  19. #19
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    pas du tout le tps de regarder dsl j'ai une livraison urgente à finir pr vendredi
    essaye de checker les erreur lors de l'upload :
    http://www.php.net/manual/fr/feature...oad.errors.php

  20. #20
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    j'ai pas vraiment de soucis au niveau de l'upload c'est ma variable qui n'est plus récupéré par ce que justement j'upload

    ma requete update perd l'info du nom de fichier si je met l'enctype

    ce que je pige pas c'est que mon formulaire d'insertion marche nickel

    mais sur un update ça marche plus alors que mon code est le même a part ma requete

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Suppression de plusieurs enregistrements à la fois
    Par vinzom dans le forum Access
    Réponses: 3
    Dernier message: 04/07/2006, 01h09
  2. Requête suppression de plusieurs lignes
    Par rane dans le forum Requêtes
    Réponses: 20
    Dernier message: 29/06/2006, 21h22
  3. [Hibernate2]suppression de plusieurs enreg de base de donnée
    Par michaelbob dans le forum Hibernate
    Réponses: 2
    Dernier message: 15/05/2006, 17h48
  4. Pour Caféine - gestion de plusieurs photos
    Par le géologue dans le forum Access
    Réponses: 1
    Dernier message: 16/03/2006, 20h08
  5. suppression sur plusieurs tables
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/06/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo