Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1160 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Supprimer plusieurs membres de ma base de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer plusieurs membres de ma base de données

n°2198387
chym785
Posté le 23-07-2013 à 03:38:45  profilanswer
 

Salut tout le monde, après avoir passé beaucoup de temps à la recherche de l erreur dans mon code je viens demander votre aide. Bon bref j essaie de supprimer un ou plusieurs membres après avoir affiché la liste des utilisateurs et mis des cases à cocher. Je coche les membres et je clique sur supprimer pour les supprimer. J'ai fait un bout de code. La liste des utilisateurs s'affiche et les cases à cocher. Le prob c'est quand je coche et clique sur supprimer rien ne se passe. Désolé pour ce long discours mais je craque vraiiiment làà. Si quelqu'un pourrait m aider je lui serai très reconnaissante. Merci
 
Le code :  
 

Code :
  1. Voici la liste des utilisateurs:
  2. <table>
  3.     <tr>
  4.         <td class="left"> <th>Id</th>
  5.         <th>Nom d'utilisateur</th>
  6.         <th>Email</th>
  7.     </tr>
  8.     <form action="users.php" method="post">
  9.     <ul>
  10.        
  11. <?php
  12. //On recupere les identifiants, les pseudos et les emails des utilisateurs
  13. $req = mysql_query('select id, username, email from users');
  14. while($dnn = mysql_fetch_array($req))
  15. {
  16. ?>
  17.        
  18.     <tr>
  19.         <td class="left"><input type="checkbox" name="id_supp[]" value="<?php echo $dnn['id']; ?>" class="id" />
  20.         <td class="left"><?php echo $dnn['id']; ?></td>
  21.         <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>">  &nbsp;  &nbsp;  &nbsp;  &nbsp;<?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
  22.         <td class="left">  &nbsp;  &nbsp;  &nbsp; &nbsp; &nbsp; <?php echo htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); ?></td>
  23.     </tr>
  24. <?php if(isset($_POST['btnAction'])){ //si on a cliqué sur 1 bouton action
  25.     if($_POST['btnAction']=="supprimer" ){  //si l'action est déplacer
  26.         if(!empty($_POST['id_supp'])){   //si on a cocher aux moin une case
  27.             foreach($_POST['id_supp'] as $dnn['id']){  //parcours les cases cochées
  28.              
  29.                $sql="DELETE FROM users WHERE id = '$id_supp'" ; // suppression des membres cochés
  30.                
  31.             }
  32.         }else{ //si aucune case n'a été cochée
  33.             echo 'vous n\'avez selectionné aucun fichier à déplacer';
  34.         }
  35.     }
  36. }
  37. ?>
  38. <?php
  39. }
  40. ?>
  41. </form>
  42. </table>

mood
Publicité
Posté le 23-07-2013 à 03:38:45  profilanswer
 

n°2198395
Volkhen
Posté le 23-07-2013 à 08:56:20  profilanswer
 

Code :
  1. foreach($_POST['id_supp'] as $dnn['id']){  //parcours les cases cochées
  2.            
  3.                $sql="DELETE FROM users WHERE id = '$id_supp'" ; // suppression des membres cochés
  4.              
  5.             }


à remplacer par  

Code :
  1. foreach($_POST['id_supp'] as $id_supp){  //parcours les cases cochées
  2.            
  3.                $sql="DELETE FROM users WHERE id = '$id_supp'" ; // suppression des membres cochés
  4.              
  5.             }


Cela pue le copier-coller foireux.
Et un conseil sérieux en passant : renseignez vous sur PDO, les fonctions mysql_ vont être abandonnées. Mieux vaut passer à PDO et surtout aux requêtes préparées qui permettent d'éviter les injections SQL sans se fatiguer.


---------------
Main/Alt1/Alt2/Alt3
n°2198439
chym785
Posté le 23-07-2013 à 11:38:57  profilanswer
 

Merci pour votre réponse mais ça marche toujours pas. Je l'ai déjà essayé et je l'ai ressayé mais vainement :( Je suis bloquée à ce point je n'arrive plus à avancer.  

n°2198452
Volkhen
Posté le 23-07-2013 à 12:05:38  profilanswer
 

Hum, il semble manquer des lignes au fait : où utilisez vous $sql ?


---------------
Main/Alt1/Alt2/Alt3
n°2198459
chym785
Posté le 23-07-2013 à 12:21:30  profilanswer
 

Nulle part, je l'ai rajouté juste pour tester quand le mysql_query tout seul n'a pas marché. C'est le code complet que je vous ai copié. On liste les utilisateurs avec des cases à cocher, on cocher un ou plusieurs et on clique sur supprimer. Tout marche bien jusqu'au moment où je clique sur supprimer : rien ne se passe.

n°2198485
Volkhen
Posté le 23-07-2013 à 13:56:01  profilanswer
 

[:pikitfleur:1] donc les requêtes de suppression ne sont jamais envoyées à la base de données ? Comment voulez vous que quelque chose se passe si rien n'est fait pour ?


---------------
Main/Alt1/Alt2/Alt3
n°2198487
chym785
Posté le 23-07-2013 à 13:58:04  profilanswer
 

Oui apparemment c'est le cas. Qu'est ce que vous voulez dire par : " Comment voulez vous que quelque chose se passe si rien n'est fait pour ? "

n°2198492
Volkhen
Posté le 23-07-2013 à 14:09:42  profilanswer
 

Volkhen a écrit :

[:pikitfleur:1] donc les requêtes de suppression ne sont jamais envoyées à la base de données ? Comment voulez vous que quelque chose se passe si rien n'est fait pour ?


Code :
  1. foreach($_POST['id_supp'] as $id_supp){  //parcours les cases cochées
  2.            
  3.                $sql="DELETE FROM users WHERE id = '$id_supp'" ; // suppression des membres cochés
  4.              
  5.             }
 

Ceci ne fait rien. Mis à part avoir une chaîne DELETE FROM users WHERE id = $dernière_id_de_la_liste après le bloc.

 

Il faudrait au moins avoir ça :

Code :
  1. foreach($_POST['id_supp'] as $id_supp){  //parcours les cases cochées
  2.            
  3.                $sql="DELETE FROM users WHERE id = '$id_supp'" ; // suppression des membres cochés
  4.                mysql_query($sql); // Envoie la requête à la base de données
  5.             }
 

Mais j'ai l'impression que vous êtes complètement dans le flou à propos de ce que fait votre code.


Message édité par Volkhen le 23-07-2013 à 14:10:25

---------------
Main/Alt1/Alt2/Alt3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Supprimer plusieurs membres de ma base de données

 

Sujets relatifs
visual basic et base de donnéemise à jour d'une table de base de données
Comment charger une image d'une base de donnéesCharger une image stockée dans une base de données
Visual Studio comment supprimer le "Scripts Documents"mon code "modifier" en php supprime les données au lieu de modifier
Générer un fichier XML a partir de données HTML 
Plus de sujets relatifs à : Supprimer plusieurs membres de ma base de données


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR