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 :

Requête PDO UPDATE ne retourne rien


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Requête PDO UPDATE ne retourne rien
    Bonjour à toutes et tous,

    Je suis vraiment pas du genre très bavard sur les forums car en général les posts des autres me renseignent énormément mais là...
    Cela fait maintenant trois jours que j'essaie de trouver pourquoi ma requête ne fonctionne pas en vain...
    J'arrive sans problème à dérouler ma liste d'activation qui comporte 3 choix sélectionnables mais quand j'en sélectionne un et que je clique sur le bouton confirmer mon activation ne change pas.
    Du côté de phpMyAdmin je peux sans problème modifier les valeurs 0 et 1 de mes 3 lignes mais le but c'est de rendre ce choix possible depuis le navigateur d'administration.
    Je vais donc vous poster les bouts de codes et espérer que vous puissiez m'aider.

    En premier lieu la partie de ma classe concernée :

    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
    // La classe Info sur le site
    class InfoSite {
     
    ...
     
    	// Liste des activations possible
    	public static function listeActivation() {
    		$liste = '';
    		$resultat = Bdd::connectBdd()->prepare(SELECT.ALL.ACTIVATION);
    		$resultat -> execute();
    		while($option = $resultat -> fetch(PDO::FETCH_ASSOC)) {
    			if($option['activation'] === '1') {
    				$liste .= '<option value="'.$option['id'].'" selected="selected">'.$option['mode'].'</option>';
    			}
    			else {
    				$liste .= '<option value="'.$option['id'].'">'.$option['mode'].'</option>';
    			}
    		}
    		return $liste;
    	}
    	// changer le mode d'activation
    	public static function activationChange($id) {
    		$activ = '1';
    		$oui = Bdd::connectBdd()->prepare(UPDATE.ACTIVATIONZ.CHANGEMETOD.ID);
    		$oui -> bindParam(':activ', $activ);
    		$oui -> bindParam(':id', $id, PDO::PARAM_INT, 11);
    		if($oui -> execute()) {
    			$desac = '0';
    			$non = Bdd::connectBdd()->prepare(UPDATE.ACTIVATIONZ.CHANGEMETOD.NOI);
    			$non -> bindParam(':activ', $desac);
    			$non -> bindParam(':id', $id, PDO::PARAM_INT, 11);
    			$non -> execute();
    		}
    		redirection('...');
    	}
     
    ...
     
    }
    En 2, mes "define" correspondants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    define('SELECT', 'SELECT ');
    define('UPDATE', 'UPDATE ');
    define('ALL', '*');
    define('ACTIVATION', ' FROM Activation');
    define('ACTIVATIONZ', 'Activation');
    define('CHANGEMETOD', ' SET activation=:activ');
    define('ID', ' WHERE id=:id');
    define('NOI', ' WHERE id!=:id');
    Et pour finir le formulaire correspondant :

    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
    ...
     
    if(!empty($_POST['Activation'])) {
    	InfoSite::activationChange($_POST['mode']);
    }
    include('menu.php');
    echo '<div class="***">
    <div class="***">configuration de l\'espace membre</div>
    <form action="" method="post">
    <div class="***">
    <div class="***">Mode d\'Activation des Membres : </div>
    <div class="***"><select class="***" name="destinataire"><option>Choisir un mode d\'activation</option>
    '.InfoSite::listeActivation().'
    </select></div></div>
    <div class="***">
    <input type="submit" name="activationChange" value="Confirmer" class="***" />
    </div>
    </form>
    </div>';
    ...
    Merci par avance de prendre le temps de me lire.

    Cordialement,

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!empty($_POST['Activation'])) {
    	InfoSite::activationChange($_POST['mode']);
    }
    Dans le formulaire que tu nous montres il n'y a pas les champs Activation ni mode.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Mille merci l'ami !!!

    J'avais le nez dans le guidon que j'en ai sauté les évidences.
    Trop la honte de pas avoir vu ca

    Je restais bloqué sur la classe alors que l'erreur se trouvait dans le formulaire

    Voici le code rectifié:

    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
    ...
    if(!empty($_POST['activationChange'])) {
    	InfoSite::activationChange($_POST['mode']);
    }
    include('menu.php');
    echo '<div class="***">
    <div class="***">configuration de l\'espace membre</div>
    <form action="" method="post">
    <div class="***">
    <div class="***">Mode d\'Activation des Membres : </div>
    <div class="***"><select class="***" name="mode"><option>Choisir un mode d\'activation</option>
    '.InfoSite::listeActivation().'
    </select></div></div>
    <div class="***">
    <input type="submit" name="activationChange" value="Confirmer" class="***" />
    </div>
    </form>
    </div>';
    Encore merci

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

Discussions similaires

  1. [PDO] Requête pdo update et le rowcount()
    Par lavm01 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/01/2014, 09h25
  2. [AJAX] Requête Ajax qui ne retourne rien
    Par Droup dans le forum jQuery
    Réponses: 5
    Dernier message: 22/09/2013, 21h30
  3. Réponses: 1
    Dernier message: 22/06/2012, 16h58
  4. [ODBC] Requète SQL qui ne retourne rien
    Par WebManiaK dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/01/2009, 14h33

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