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 d'un utilisateur [PostgreSQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Points : 61
    Points
    61
    Par défaut Suppression d'un utilisateur
    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
     
    <?php
    require_once("connexion.php");
     
    $query="SELECT * FROM utilisateurs ORDER BY idutilisateur";
    $repSQL = pg_exec($query) or die ("Erreur");
     
    while ($donnees = pg_fetch_assoc($repSQL))
    {
    	echo $donnees['idutilisateur'].'&nbsp;'.'&nbsp;'.'&nbsp;'; 
    	echo $donnees['nom'].'&nbsp;'.'&nbsp;';
    	echo $donnees['prenom'].'<br />';
     
    	if($_POST["supprimer".$donnees['idutilisateur']]=='on') 
    	{  
    		echo "BONJOUR";
    		$sql ='DELETE FROM utilisateurs WHERE idutilisateur ='.$donnees['idutilisateur'];
    		$result=pg_exec($sql) or die ("Erreur");
    	}
    }
    ?>
    Sur une liste d'utilisateurs, lorsque je coche la checbocks correspondante je souhaiterai supprimer l'utilisateur de la base de données en cliquant sur valider mais ca ne marche pas.

    Dans le while, a l'execution, on ne rentre pas dans le if. Serait-elle de là l'erreur ? Erreur dans le code ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Encore une fois, controle ta variable $_POST.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Points : 61
    Points
    61
    Par défaut
    La variable est bien absente mais comment corrigée ceci ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Corrige le formulaire d'ou elle devrait venir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Points : 61
    Points
    61
    Par défaut
    C'est àdire ? Corriger quoi dans le formulaire ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne suis pas devin et je ne connais pas ton formulaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Points : 61
    Points
    61
    Par défaut
    Voici mon premier fichier "supprimer.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
    <?php
     
    require_once("connexion.php");
     
    // Vérification du contenu de $_POST['idutilisateur']
    if (empty($_POST['idutilisateur'])) {
     exit("Donnée absente");
    }
     
     
    $query="SELECT * FROM utilisateurs ORDER BY idutilisateur";
    $repSQL = pg_exec($query) or die ("Erreur");
     
    while ($donnees = pg_fetch_assoc($repSQL))
    {
    	echo $donnees['idutilisateur'].'&nbsp;'.'&nbsp;'.'&nbsp;'; 
    	echo $donnees['nom'].'&nbsp;'.'&nbsp;';
    	echo $donnees['prenom'].'<br />';
     
    	if($_POST["supprimer".$donnees['idutilisateur']]=='on') 
    	{  
    		echo "BONJOUR";
    		$sql ='DELETE FROM utilisateurs WHERE idutilisateur ='.$donnees['idutilisateur'];
    		$result=pg_exec($sql) or die ("Erreur");
    	}
    }
    ?>

    Voici le second fichier "utilisateurs.php" contenant le formulaire
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
              "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
     <head>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
       <title>Quiz STRI</title>
        <link rel="stylesheet" type="text/css" href="styles/quiz.css" />
     </head>
     
    <body>
     <div class="gauche">
      <img src="images.jpg" alt="logo"/>
     </div>
     
     <h1>Quiz: Formation STRI</h1>
     
       <div class="menu1"> <!-- d?t de la boite contenant les onglets -->
    	<a class="onglet" href="admin.php">Accueil</a> <!-- onglet inactif -->
    	<a class="onglet" href="cours_quiz2.php">Accès Cours + Quiz</a> <!-- onglet inactif -->
    	<a class="onglet" href="creation.php">Cr&eacute;ation Cours</a> <!-- onglet inactif -->
    	<a class="onglet" href="creation_quiz.php">Cr&eacute;ation Quiz</a> <!-- onglet inactif -->
    	<a class="onglet" href="stats.php">Statistiques</a> <!-- onglet inactif -->
    	<span class="onglet-actif">Gestion utilisateurs</span> <!-- onglet ACTIF -->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <?php
    	session_start();
      ?>
      <input type="button" value="se déconnecter" onclick="self.location.href='deconnexion.php'"/>
       </div>
     
       <div class="contenu2">
    	<fieldset>		
         <legend>Gestion des utilisateurs</legend>
    	  <p>
    	Dans le tableau ci-dessous apparaissent l'ensemble des utilisateurs enregistr&eacute;s.
    	  </p>
     
    <?php
    require_once("connexion.php");
     
    // lancement de la requête (on impose aucune condition puisque l'on désire obtenir la liste complète des utilisateurs
    $sql = 'SELECT * FROM utilisateurs
    		ORDER BY idutilisateur';  
     
    $result=pg_exec($connect,$sql) or die ("Erreur");
     
    // on va scanner tous les tuples un par un
     echo '<TABLE BORDER="1" CELLPADDING="5" ALIGN="center"><TR>';
     echo '<TH> ID utilisateur </TH>';
     echo '<TH> Nom  </TH>';
     echo '<TH> Prénom  </TH>';
     echo '<TH> Adresse mail  </TH>';
     echo "<TH> Type d'utilisateur  </TH>";
     echo '<TH> Supprimer </TH>';
     echo '</TR>';
     
     echo '<form method="post" action="supprimer.php">';
    while ($data = pg_fetch_array($result)) { 
          // on affiche les résultats
    	  echo '<TR>';
    	  echo '<TD>'.$data['idutilisateur'].'<br /></TD>'; 
          echo '<TD>'.$data['nom'].'<br /></TD>'; 
          echo '<TD>'.$data['prenom'].'<br /></TD>'; 
    	  echo '<TD>'.$data['adressemail'].'<br /></TD>';
    	  echo '<TD>'.$data['typeutilisateur'].'</TD>';
          echo "<TD><input type=checkbox name=suppression value=supprimer".$data['idutilisateur']."></TD>";
    	  echo '</TR>';
    }
    	  echo '</TR></TABLE>';
    	  echo '<br /><input type="submit" value="Valider" name="ok">';
    	  '</form>';
     
    pg_free_result ($result);
    pg_close ($connect);  
    ?> 
     
        </fieldset>
       </div>
    </body>
    </html>

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<TD><input type="checkbox" name="suppression[]"  value ="' . $data['idutilisateur'] .'">';
    supprimer.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    require_once("connexion.php");
    if (isset($_POST['suppression'])) {
           $tblId = array_map('intval', $_POST['suppression']);
            $sql ='DELETE FROM utilisateurs WHERE idutilisateur IN (' . implode(',', $tblId) . ')';
    	$result=pg_exec($sql) or die ("Erreur");
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup.

    Il y a un petit Hic c'est que Idutilisateur est clé étrangère dans d'autres tables et cela gène la suppression d'un ligne.

    Comment résoudre ce souci ?

  10. #10
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton champ doit avoir l'option "ON DELETE CASCADE"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup !!!
    Vous m'avez bien aidée

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

Discussions similaires

  1. [WSS 3.0] suppression d'un utilisateur
    Par cyrus22 dans le forum SharePoint
    Réponses: 1
    Dernier message: 20/02/2008, 12h18
  2. [FTP] suppression de répertoire utilisateur
    Par dec13els dans le forum Langage
    Réponses: 3
    Dernier message: 28/10/2007, 14h45
  3. Réponses: 1
    Dernier message: 24/09/2007, 17h32
  4. Réponses: 4
    Dernier message: 24/09/2007, 17h17
  5. Suppression / Recréation d'utilisateurs
    Par LordBob dans le forum Apple
    Réponses: 3
    Dernier message: 09/03/2007, 11h36

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