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 :

Contenu d'une DB MYSQL dans un formulaire avec supprimer et Editer


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut Contenu d'une DB MYSQL dans un formulaire avec supprimer et Editer
    Salut,
    J'ai ecrit un moceau de code afin de recuperer les donnees d'une base de donne Mysql et l'afficher dans un tableau. jusqu'a la pas de problemes.
    Ensuite sur chaque ligne je souhaite y ajouter un boutons "SUPPRIMER" et un autre "EDITER" mais je ne sais pas commenent ecrire mon IF affecter au bouton supprimer et editer.

    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
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
    require ('login.php');
    
    // on cr?e la requ?te SQL 
    $sql = 'SELECT ID,Full_Name,Email,Phone,Mobile_Phone,City FROM contact'; 
    
    // on envoie la requ?te 
    $req = mysql_query($sql) or die('SQL Error !<br>'.$sql.'<br>'.mysql_error()); 
    
    ?>
    
    <style type="text/css">
    <!--
    .Style1 {color: #FFFFFF}
    -->
    </style>
    <table width="646" border="1" align="center">
      <tr>
        <th width="94" bgcolor="#003399" scope="col"><span class="Style1">ID</span></th>
        <th width="110" bgcolor="#003399" scope="col"><span class="Style1">Full Name </span></th>
        <th width="96" bgcolor="#003399" scope="col"><span class="Style1">Email</span></th>
        <th width="102" bgcolor="#003399" scope="col"><span class="Style1">Phone</span></th>
        <th width="113" bgcolor="#003399" scope="col"><span class="Style1">Mobile Phone </span></th>
        <th width="91" bgcolor="#003399" scope="col"><span class="Style1">City</span></th>
        <th width="91" bgcolor="#003399" scope="col"><span class="Style1">Action</span></th>
      </tr>
      <tr>
    <?php
    // on fait une boucle qui va faire un tour pour chaque enregistrement 
    while($data = mysql_fetch_assoc($req)) 
        { 
        // on affiche les informations de l'enregistrement en cours 
       echo "<tr>
    	<td>".$data['ID']."</td>
    	<td>".$data['Full_Name']."</td>
    	<td>".$data['Email']."</td>
    	<td>".$data['Phone']."</td>
    	<td>".$data['Mobile_Phone']."</td>
    	<td>".$data['City']."</td>
    	<td><input type=\"submit\" name=\"".$data['ID']."\"  value=\"Delete\"></td>
    	</tr>";
        } 
    // Ici je bug je ne sais plus trop quoi ecrire !!!
    
    if(isset($_POST['Delete'])) 
    {
    echo ('ligne a suprimer'$data['ID']);
    $sql = mysql_query('DELETE * FROM contact WHERE ID = '.$data['ID'].''); 
    $res = mysql_query($sql);
    if(!$res) die ("Impossible de supprimer");
    }
    
    ?>   
      </tr>
    </table>
    
    <?php
    // on ferme la connexion ? mysql 
    mysql_close(); 
    ?>
    Si vous avez une petit idee merci.
    Jerome

  2. #2
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Bonsoir,

    Tu n'as pas mi de balise form pour envoyer les données en POST.
    Il te faudra aussi mettre tes données dans des input de type "hidden" ce qui assez chian

    Tu devrais donc faire un simple lien en passant l'id de ton entré que tu récupéras en GET.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a href="page.php?action=del&id='.$data['id'].'>Effacer</a>';
    Ps :

    Fait attention à ta requête SQL et encadre ta variable avec un intval() pour éviter une injection SQL

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut
    je n'ai pas vraiment compris comment completer mon code.
    je suis un oeu newbee dans cette histoire

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Bonjour,

    A mon avis, il ne faut pas utiliser le <input type="submit"> mais un <input type="button"> et un code JavaScript déclanché sur onclick qui va affecter une certaine valeur ($data['ID']) à un champ de formulaire caché (appelé delete_data_id par exemple) et qui soumet ensuite le formulaire. Tu récupères l'ID à supprimer avec $_POST["delete_data_id"] :
    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
    <script>
    function delete_data(id) {
        document.forms[0].delete_data_id.value = id;
        document.forms[0].submit();
    }
    </script>
     
    <form ...>
    <input type="hidden" name="delete_data_id"/>
    ...
     
    // Suppression
    if(isset($_POST['delete_data_id'])) 
    {
        echo ('ligne a suprimer : '.$_POST['delete_data_id']);
        $sql = mysql_query('DELETE * FROM contact WHERE ID = '.$_POST['delete_data_id']);
        $res = mysql_query($sql);
        if(!$res) die ("Impossible de supprimer");
    }
     
     
    	<td><input type=\"button\" onclick=\"delete_data(".$data['ID'].");\"  value=\"Delete\"></td>
    Soit dit en passant : faire le delete après le select, c'est un peu étrange car quand tu cliqueras sur delete, ça t'afficheras de nouveau la donnée que tu voulais supprimer... C'est pour ça que j'ai remonté ton code de suppression.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Par défaut
    Bien le bonjour,

    Je viens de voir ton code Mac, et il m'interresse beaucoup.

    Je voudrais faire la même chose que fennechaim, et je n'arrive pas bien a démenteler ton codage.

    Enfaite je me retrouve avec un label ou on dirait qu'il faut rentré son champs de BDD afin qu'il soit supprimer.Mais en vain et je pense que tu le sais bien

    Je rentre le codage java, ensuite le formulaire qui part vert un lien.php ou est noté la //suppression.

    Ensuite la fin du codage.

    Vois par toi meme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <SCRIPT language="Javascript">
    function delete_data(idnom_utilisateur) {
        document.forms[0].delete_data_idnom_utilisateur.value = idnom_utilisateur;
        document.forms[0].submit();
    }
    </script>
     
     
    //FORMULAIRE
     
    <form name="supprimer" action="fsupprimerutilisateur.php" >
    <input type="hidden" value="" name="delete_data_idnom_utilisateur"/>
    </form>

    Qui par sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(isset($_POST['delete_data_idnom_utilisateur'])) 
    {
        echo ('ligne a suprimer : '.$_POST['delete_data_idnom_utilisateur']);
        $sql = mysql_query('DELETE * FROM nom_utilisateur WHERE idnom_utilisateur = '.$_POST['delete_data_id']);
        $res = mysql_query($sql);
        if(!$res) die ("Impossible de supprimer");
    }
    Et enfin,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=\"button\"onclick=\"delete_data(".$data['idnom_utilisateur'].");\" value=\"DELETE\">
    J'ai quelque peu modifier id par mon champs de ma table,
    Mais rien ne se supprime :s

    Si tu pouvais me mettre dans le droit chemin

    En te remerciant

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    C'est évident :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = mysql_query('DELETE * FROM nom_utilisateur WHERE idnom_utilisateur = '.$_POST['delete_data_id']);
    Il sort d'où, ce $_POST['delete_data_id']) ? Le champ de formulaire qui contient l'ID à supprimer s'appelle delete_data_idnom_utilisateur, pas delete_data_id

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/05/2013, 14h24
  2. Réponses: 1
    Dernier message: 06/08/2012, 18h12
  3. [MySQL] recuperer le contenu d'une table mysql dans un menu deroulant
    Par Abou Zar dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/02/2010, 17h49
  4. [MySQL] affiche valeurs d'une table mysql dans un formulaire htm
    Par pierre27 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/09/2007, 16h25
  5. Utiliser une table MySQL dans un menu deroulant de formulaire
    Par darkfazer dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 17/10/2006, 23h16

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