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 :

bouton radio + update BDD


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2020
    Messages : 38
    Points : 34
    Points
    34
    Par défaut bouton radio + update BDD
    Bonjour,

    J'ai un soucis, je suis novice dans le php, j'ai cherche un peu partout mais la je bloque.
    J'aimerais crée des bouton radio qui met a jour ma BDD directement.

    Voila se que j'ai déjà fais:
    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
     
    	<?php
    	$bdd = new PDO('mysql:host=127.0.0.1;dbname=registration;charset=utf8', 'root', '');
        $membres = $bdd->query('SELECT * FROM users');
    	if(isset($_GET['type']) AND $_GET['type'] == 'membre') 
    	{
    	   if(isset($_GET['confirme']) AND !empty($_GET['confirme'])) 
    	   {
    	      $confirme = (int) $_GET['confirme'];
    	      $req = $bdd->prepare('UPDATE users SET confirme = 1 WHERE id = ?');
    	      $req->execute(array($confirme));
    	   }
    	   if(isset($_GET['supprime']) AND !empty($_GET['supprime'])) 
    	   {
    	      $supprime = (int) $_GET['supprime'];
    	      $req = $bdd->prepare('DELETE FROM users WHERE id = ?');
    	      $req->execute(array($supprime));
    	   }
    	}	  
    	if (isset($_POST['valider'])) {
    		{
    	    $sql = "UPDATE users SET complet = 1 WHERE id= ?";
    		$req = $bdd->query($sql);
    		}
    	}
    	?>
    	<!DOCTYPE html>
    	<html>
    	<head>
    	   <meta charset="utf-8" />
    	   <title>Administration</title>
    	</head>
    	<body>
    	<table class="tab_recup">
    <tr>
        <th>CP</th>
        <th>MAIL</th>
        <th>Confirmer</th>
        <th>Supprimer</th>
    	<th>Mode Maintenance</th>
    </tr>
    	   <ul>
    	      <?php while($m = $membres->fetch()){	?>
    		<tr>
                <td><?php echo $m['username'] ?></td>
                <td><?php echo $m['email'] ?></td>
    			<td><?php if($m['confirme'] == 0) { ?><a href="administrateur.php?type=membre&confirme=<?= $m['id'] ?>" onclick="return confirm('Êtes-vous sûr de vouloir confirmer cette utilisateur?');"}>Confirmer</a><?php }else{echo "OK";} ?></td>
                <td><a href="administrateur.php?type=membre&supprime=<?= $m['id'] ?>" onclick="return confirm('Êtes-vous sûr de vouloir supprimer cette utilisateur?');">Supprimer</a></td>
    			<td><form action="administrateur.php" method="post"> 
    					<input type="radio" name="maint" id="maint" value="1" <?php if($m['complet']=="1"){ echo "checked"; };?> >
    					<input type="radio" name="maint" id="maint" value="2" <?php if($m['complet']=="2"){ echo "checked"; };?> >
    					<input type="radio" name="maint" id="maint" value="3" <?php if($m['complet']=="3"){ echo "checked"; };?> >
    					<input type="submit" value="Enregistrer" name="valider" id="valider"></form>
            </tr>
    		  <?php } ?>
    	</body>
    	</html>
    Je fais une page d'administration pour confirmer, supprimer, ou donner des droits supplémentaires à chaque membre individuellement.
    la confirmation et la suppression fonctionne parfaitement.

    Actuellement mes boutons me dis si la valeur 1, 2ou3 existe alors il me le coche.
    Maintenant j'aimerais faire une validation automatique, quand je coche il me met la valeur 'complet' à 1,2 ou 3 et quand j'en coche un autre.

    J’espère que j'ai été clair.

    Merci d'avance

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Bonjour,

    Ajoutes d'abord un <input type="hidden" name="id" value="<?=$m["id"]?>" /> juste après le bouton submit, puis récupère la valeur de $_POST["maint"] et $_POST["id"]; dans la partie :
    Code php : 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
     
    if (isset($_POST['valider'])) {
    	$maint=$_POST['maint'];
    	$id=$_POST['id'];
    	if(!empty($maint)&&!empty($id)){
    		$sql = "UPDATE users SET complet = ? WHERE id= ?";
    		$req = $bdd->prepare($sql);
    		$req->execute([$maint,$id]);
    		if($req->rowCount()>0){
                     /*Si jamais tu ne veux pas que le message s'affiche ici, enregistre le dans une variable et utilise-la plus bas....*/
    			echo 'modification effectuée avec succès.';
    		}else{
    			echo "aucune modification n'a été effectuée.";
    		}
    	}
    }

    Après je pense qu'il faut corriger ton code (PHP et HTML) :
    • Un <ul> en trop ligne 42.
    • Des attributs id id="maint" qui se répètent plusieurs fois.
    • Des accolades {} en trop lignes 21 et 24.
    • Préparation obligatoire des requêtes utilisant les variables $_POST ou $_GET afin d'éviter les Injections SQL.
    • Déplacer la ligne $membres = $bdd->query('SELECT * FROM users'); qui sélectionne les données après la modification, sinon l'affichage ne sera pas synchroniser.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2020
    Messages : 38
    Points : 34
    Points
    34
    Par défaut
    Merci beaucoup c'est exactement ce que je cherchais et merci pour les petits conseils.

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

Discussions similaires

  1. Enregistrer checkbox dans bdd avec un update
    Par Bboop dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 14/11/2019, 11h58
  2. [MySQL] ré-affichage checkboxs depuis bdd pour update
    Par Evelyne31 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 22/03/2019, 19h06
  3. [MySQL] Update résultat checkbox dans bdd à partir d'un formulaire
    Par crastinette dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/07/2017, 21h56
  4. [SQL] problème update bdd
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/06/2007, 17h59
  5. [MySQL] soucis UPDATE BDD
    Par pp51 dans le forum PHP & Base de données
    Réponses: 41
    Dernier message: 28/05/2007, 16h38

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