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 :

Intégration de check box pour la modification et la suppression d'utilisateurs. [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Intégration de check box pour la modification et la suppression d'utilisateurs.
    Bonjour tout le monde,

    Je suis tout nouveau sur se forum et je suis également nouveau en matière de code. J'aurais besoin de votre aide. En effet, j'aimerai utiliser des check box afin de supprimer et/ou modifier des utilisateurs (je coche 4 check box par exemple, et lorsque je clique sur mon bouton supprimer, sa supprime mes 4 utilisateurs dans ma BDD). Je cherche depuis deux jour j'ai essayer pas mal de chose mais je n'y arrive pas (je n'ai pas de logique de développement et cela est assez dure pour moi de coder mais je tiens bon )

    Voici mon code qui sélectionne les utilisateurs de ma base de donnée et les affichent sur ma page dans un tableau :

    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
     
    <?php
    if(!defined('IN_INDEX')){
    	exit();
    }
     
    $_SESSION['action']="module/administration/action.php";
     
     
    	// en-tete du tableau 
     
    	echo'<table border="1" frame="hsides">
    		<caption>Liste des utilisateurs</caption>
    		<tr align="center" height="40">
    			<th>Login</th>
    			<th>Nom</th>
    			<th>Prénom</th>
    			<th>Profil</th>
    			<th>Mail</th>
    			<th>Rue</th>
    			<th>Code Postal</th>
    			<th>Ville</th>
    			<th>Téléphone Fixe</th>
    			<th>Téléphone Portable</th>
    		</tr>';
     
    $resultats=$connexion->query('SELECT login,nom,prenom,profil,mail,rue,cp,ville,tel_fixe,tel_portable FROM collaborateur'); // on va chercher tous les membres de la table
    	while( $ligne = $resultats->fetch(PDO::FETCH_OBJ) ) // on récupère la liste des membres
    	{
    		echo '<tr align="center" height="40">';
    		echo '<td>'.$ligne->login.'</td>';
    		echo '<td>'.$ligne->nom.'</td/>';
    		echo '<td>'.$ligne->prenom.'</td>';
    		echo '<td>'.$ligne->profil.'</td>';
    		echo '<td>'.$ligne->mail.'</td>';
    		echo '<td>'.$ligne->rue.'</td>';
    		echo '<td>'.$ligne->cp.'</td>';
    		echo '<td>'.$ligne->ville.'</td>';
    		echo '<td>'.$ligne->tel_fixe.'</td>';
    		echo '<td>'.$ligne->tel_portable.'</td>';
    		echo '</tr>';
    	}
    	$resultats->closeCursor(); // on ferme le curseur des résultats
     
    	echo "</table>";
     
    ?>
     
    <br/>
    <input type="submit" value="Ajouter un utilisateur" name="gesAjou">
    Je voudrais arriver à ce résultat (je ne parle pas de la beauté du javascript) cf pièce jointe.

    Merci de votre aide
    cdt,
    Images attachées Images attachées  

  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
    Bonjour,

    Tu fais une case a cocher qui a comme valeur l'id de ton enregistrement (n'oublie pas d'ajouter l'id dans ton SELECT)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	while( $ligne = $resultats->fetch(PDO::FETCH_OBJ) ) // on récupère la liste des membres
    	{
    		echo '<tr align="center" height="40">';
    		echo '<td><input type="checkbox" name="supprime[]" value="' . .$ligne->id .'</td>
                            <td>'.$ligne->login.'</td>';
    A la validation du formulaire, tu supprimes tes enregistrements cases cochées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['supprime'])) {
    $sql = "DELETE FROM collaborateur WHERE id IN (" . implode(",", $_POST['supprime']) . ")";
    ....
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    merci pour ta réponse ! ! mais cela ne fonctionne pas

    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
    	$resultats=$connexion->query('SELECT id,login,nom,prenom,profil,mail,rue,cp,ville,tel_fixe,tel_portable FROM collaborateur'); // on va chercher tous les membres de la table
    	while( $ligne = $resultats->fetch(PDO::FETCH_OBJ) ) // on récupère la liste des membres
    	{
    		echo '<tr align="center" height="40">';
    		echo '<td><input type="checkbox" name="supprime[]" value="'.$ligne->id .'"</td>';		
    		echo '<td>'.$ligne->login.'</td>';
    		echo '<td>'.$ligne->nom.'</td/>';
    		echo '<td>'.$ligne->prenom.'</td>';
    		echo '<td>'.$ligne->profil.'</td>';
    		echo '<td>'.$ligne->mail.'</td>';
    		echo '<td>'.$ligne->rue.'</td>';
    		echo '<td>'.$ligne->cp.'</td>';
    		echo '<td>'.$ligne->ville.'</td>';
    		echo '<td>'.$ligne->tel_fixe.'</td>';
    		echo '<td>'.$ligne->tel_portable.'</td>';
    		echo '</tr>';
    	}
    	$resultats->closeCursor(); // on ferme le curseur des résultats
     
    	echo "</table>";
     
    	if (isset($_POST['supprime'])) {
    		$connexion->exec('DELETE FROM collaborateur WHERE id IN ("'.implode('","',$_POST['supprime']).'");');		
    	}
    Je sais pas si j'ai mal intégré ton bout de code où si je l'ai mal écrit... ! Voici l'erreur qui met retourné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: implode() [function.implode]: Bad arguments.
    J'ai biensur ajouter un bouton "supprime"

    Merci pour ton aide

  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
    Ce que tu as écris est plutot différent de ce que j'ai écris non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Oui merci sabotage ça fonctionne.

    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
    if(!defined('IN_INDEX')){
    	exit();
    }
     
    $_SESSION['action']="module/administration/action.php";
     
     
    	// en-tete du tableau 
     
    	echo'<table border="1" frame="hsides">
    		<caption>Liste des utilisateurs</caption>
    		<tr align="center" height="40">
    			<th><input type="checkbox" name="allsuppr" value="'.$ligne->id.'"</th>
    			<th>Login</th>
    			<th>Nom</th>
    			<th>Prénom</th>
    			<th>Profil</th>
    			<th>Mail</th>
    			<th>Rue</th>
    			<th>Code Postal</th>
    			<th>Ville</th>
    			<th>Téléphone Fixe</th>
    			<th>Téléphone Portable</th>
    		</tr>';
     
     
    	$resultats=$connexion->query('SELECT id,login,nom,prenom,profil,mail,rue,cp,ville,tel_fixe,tel_portable FROM collaborateur'); // on va chercher tous les membres de la table
    	while( $ligne = $resultats->fetch(PDO::FETCH_OBJ) ) // on récupère la liste des membres
    	{
    		echo '<tr align="center" height="40">';
    		echo '<td><input type="checkbox" name="supprime[]" value="'.$ligne->id .'"</td>'; //cela va permettre de pouvoir supprimer 		
    		echo '<td>'.$ligne->login.'</td>';
    		echo '<td>'.$ligne->nom.'</td/>';
    		echo '<td>'.$ligne->prenom.'</td>';
    		echo '<td>'.$ligne->profil.'</td>';
    		echo '<td>'.$ligne->mail.'</td>';
    		echo '<td>'.$ligne->rue.'</td>';
    		echo '<td>'.$ligne->cp.'</td>';
    		echo '<td>'.$ligne->ville.'</td>';
    		echo '<td>'.$ligne->tel_fixe.'</td>';
    		echo '<td>'.$ligne->tel_portable.'</td>';
    		echo '</tr>';
    	}
    	$resultats->closeCursor(); // on ferme le curseur des résultats
     
    	echo "</table>";
     
    	//On supprime dans la table la ou les checkbox coché
    	if (isset($_POST['suppr'])) {
     
    			$connexion->exec('DELETE FROM collaborateur WHERE id IN (' . implode(",", $_POST['supprime']) . ')');
     
    	}
     
    ?>
     
    <br/>
    <input type="submit" value="Ajouter un utilisateur" name="gesAjou">
    <input type="submit" value="Supprimer" name="suppr">
    Le SEUL "hic" c'est que lorsque je coche et je supprime, le champ ne part pas. Je suis obligé de faire F5 pour rafraichir la page afin que la ou les lignes coché disparaisse. Est-ce normal? Y a-t-il un moyen de palier à ce problème?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 6
    Points
    6
    Par défaut refresh
    Tu dois mettre cette ligne pour le "refresh" automatique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<meta http-equiv='refresh' content='0;URL=page_name.php'>";

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

Discussions similaires

  1. Avoir des check box pour les parametres d'une requete
    Par smalldragoon dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 14/10/2014, 22h16
  2. [Débutant] Check Box Dans gridview pour Extraire des lignes dans Excel
    Par harghan dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/01/2013, 09h07
  3. check box pour affichage dans un formulaire multiple
    Par rvm31 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/12/2012, 23h37
  4. check box pour afficher autre chose
    Par vincent1412 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/02/2006, 17h47
  5. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49

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