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

Langage PHP Discussion :

Lien de suppression de fichier dans un tableau.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut Lien de suppression de fichier dans un tableau.
    Bonjour,
    je réalise un site pour afficher des photos, après avoir fait un formulaire pour les "uploader". J'ai fait un tableau récapitulatif des photos "uploader" avec une miniature de la photo , son nom, un lien pour éditer ses informations et un lien pour la supprimer.
    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
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    include('vision_db.php');
    include('secure.php');
    $connexion=mysql_connect($host, $user, $password)
    	or die ("connexion au serveur impossible");
    $db=mysql_select_db($database, $connexion)
    	or die ("selection de la base de donnée impossible");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Admin Vision</title>
    </head>
    <body>
    Ajouter un fichier. <br />
    <form action="admin_1.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
    <input type="file" name="toph" />
    <input type="submit" value="Envoyer" />
     
    </form> <br /><br/><br />
    Supprimer un fichier.
    <?php
    $sql =mysql_query("SELECT * FROM photos")
    	or die ("requete impossible");
    $retour_sql = mysql_fetch_assoc($sql);
    ?>
    <table border="8" cellspacing="5px" cellpadding="20" width="70%" frame="box" rules="all">
     
        <?php do { ?>
          <tr>
        	<td>Miniatures<br/><?php echo '<img src = "'.$retour_sql['lien'].'" height = "320" widht"240"/>'; ?></td> 
            <td>Nom<br/><?php echo $retour_sql['Nom']; ?></td> 
            <td>Editer<br/></td> 
            <td>Supprimer<br/></td>
          </tr>
        <?php } while ($retour_sql = mysql_fetch_assoc($sql)); ?>
    </table>
    </body>
    </html>
    Alors le problème c'est la réalisation de ces deux liens, j'aimerais automatiser la suppression des photos, chaque ne devra supprimer qu'une seul photo (celle de la ligne sur laquelle il se trouve).
    Ou autre solution est il possible de mettre des cases à cocher dans un tableau et de mettre un bouton pour supprimer uniquement les cases cochées?
    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les deux sont possibles.

    Tu peux faire un lien du type index.php?action=supprimer&id=148

    ou un formulaire avec des cases a cocher du type
    <input type="checkbox" name="photo_id[]" value="148" />
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut
    Bonjour,
    ou un formulaire avec des cases a cocher du type
    <input type="checkbox" name="photo_id[]" value="148" />
    je ne vois pas très bien comment me servir de : name = "photo_id[]" ni de : value = "148".
    Ensuit, j'ai modifié le code de manière à avoir le tableau dans un formulaire. Cela me permettra d'utiliser les cases à cocher, pour pouvoir sélectionner plusieurs photos en même temps (et du coup les éffacer en même temps).
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    include('vision_db.php');
    include('secure.php');
    $connexion=mysql_connect($host, $user, $password)
    	or die ("connexion au serveur impossible");
    $db=mysql_select_db($database, $connexion)
    	or die ("selection de la base de donnée impossible");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Admin Vision</title>
    </head>
    <body>
    Ajouter un fichier. <br />
    <form action="admin_1.php" method="post" enctype="multipart/form-data" name="form_upload">
    <input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
    <input type="file" name="toph" />
    <input type="submit" value="Envoyer" id = "submit_upload" />
     
    </form> <br /><br/><br />
     
    <?php
    $sql =mysql_query("SELECT * FROM photos")
    	or die ("requete impossible");
    $retour_sql = mysql_fetch_assoc($sql);
    ?>
    <form action="admin_1.php" method="post" enctype="multipart/form-data" name="form_delete">
    <fieldset>
    	<legend>Supprimer une ou plusieurs photos</legend>
    <table border="8" cellspacing="5px" cellpadding="20" width="70%" frame="box" rules="all">
     
        <?php do { ?>
          <tr>
        	<td>Miniatures<br/><?php echo '<img src = "'.$retour_sql['lien'].'" height = "320" widht"240"/>'; ?></td> 
            <td>Nom<br/><?php echo $retour_sql['Nom']; ?></td> 
            <td><label>Editer</label><br/><input type="checkbox" name="editer"/></td> 
            <td><label>Supprimer</label><br/><input type="checkbox" name="supprimer"/></td>
          </tr>
        <?php } while ($retour_sql = mysql_fetch_assoc($sql)); ?>
    </table>
    <input type = "submit" value="Envoyer" id = "submit_delete"/>
    </fieldset>
    </form>
    </body>
    </html>
    Donc le souci vient du traitement du formulaire. Comment executer telle ou telle fonction selon le formulaire soumit (soit selui d'upload ou de delete), la page admin_1 (chargé de traité les formulaires) devra contenir les deux fonctions chacune liée à un formulaire. Est ce que quelque chose de ce style pourrais marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    switch ( isset ($_POST[id]))
             case (submit_upload)
                     ma_fonction_upload()
                     break
             case (submit_delete)
                    ma_fonction_delete()
                    break
    Merci.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><label>Supprimer</label><br/><input type="checkbox" name="supprimer[]" value="' . $retour_sql['id'] .'" /></td>';
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    switch ($_POST['submit']))
             case 'submit_upload' :
                     ma_fonction_upload()
                     break
             case 'submit_delete' :
                  if ($_POST['supprimer']) {
                      foreach ($_POST['supprimer']  as $photo_id) {
                            $sql = "DELETE FROM photos WHERE id=" . $photo_id
                            ....
                      }
                  }
             }
     
             break
    PAR CONTRE

    Actuellement ton bouton submit n'a pas de "name", il faut donc lui en mettre un.
    Tu ne peux pas traiter avec des cases a cocher a la fois edition et suppression ou du moins qu'est ce qui est censé se passer si on coche les deux ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut
    Bonjour,
    Actuellement ton bouton submit n'a pas de "name", il faut donc lui en mettre un.
    mais ça ne devrais pas marcher avec un "id"?

    Tu ne peux pas traiter avec des cases a cocher a la fois edition et suppression ou du moins qu'est ce qui est censé se passer si on coche les deux ?
    Pour ce cas de figure je pensais soit à du javascript ou changer pour des bouton radio, mais je me demande si il n'y aurais pas une solution plus simple, ça donne un peu l'impression du semi-remorque pour aller chercher la baguette de pain.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    mais ça ne devrais pas marcher avec un "id"?
    un champ renvoit un couple name/value.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. charger un fichier dans un tableau
    Par nico0007 dans le forum Delphi
    Réponses: 3
    Dernier message: 16/01/2007, 23h59
  2. Réponses: 4
    Dernier message: 26/01/2006, 14h37
  3. Réponses: 14
    Dernier message: 19/11/2005, 18h56
  4. Mettre un fichier dans un tableau
    Par peuf23 dans le forum Langage
    Réponses: 3
    Dernier message: 26/07/2005, 10h47
  5. Réponses: 4
    Dernier message: 10/10/2003, 18h04

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