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 :

update qui ne fait pas son travail [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Points : 310
    Points
    310
    Par défaut update qui ne fait pas son travail
    Bonjour à tous,

    J'ai un problème avec mon UPDATE. Aucune erreur affichée mais la BDD n'est pas mis à jour.

    Voici le 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
    if (isset($_POST['modif_profil'])) {
        $erreur = checkForm();
        // pas d'erreur
        if (empty($erreur)) {
    									//Protection par captcha
    									//if($_POST['captcha'] == $_SESSION['captcha']){
     
    	    $req = Cnx::connectCnx()->prepare("UPDATE  users SET societe=:societe, nom=:nom, prenom=:prenom, adresse=:adresse, cp=:cp, ville=:ville, tel1=:tel1, tel2=:tel2, mail=:mail, niveau=:niveau WHERE id=:id");
    	    $req->bindValue(':societe', $_POST['societe']);
                $req->bindParam(':nom', $_POST['nom']);
                $req->bindParam(':prenom', $_POST['prenom']);
                $req->bindParam(':adresse', $_POST['adresse']);
                $req->bindParam(':cp', $_POST['cp'], PDO::PARAM_INT);
                $req->bindParam(':ville', $_POST['ville']);
                $req->bindParam(':tel1', $_POST['tel1']);
                $req->bindValue(':tel2', $_POST['tel2']); 
                $req->bindParam(':mail', $_POST['mail']);
    	    $req->bindParam(':niveau', $_POST['niveau']);
    	    $req->bindParam(':id', $_POST['id'], PDO::PARAM_INT);
    	    $req->execute(); 
     
    		/*}else{echo "Veuillez calculer le code de sécurité";}*/
    	} else {
            echo '<div class="error">';
            foreach ($erreur as $e) {
                echo $e, '<br />';
            }
            echo '</div>';
        }
    }
    Quelqu'un à une idée svp?

  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
    Contrôle ce que contient $_POST pour commencer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Points : 310
    Points
    310
    Par défaut
    comment ça?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Pour le débuggage on contrôle souvent avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Points : 310
    Points
    310
    Par défaut
    Le $_POST affiche bien la modification que j'ai effectué.
    Mais ça ne l'enregistre pas dans la BDD.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Points : 310
    Points
    310
    Par défaut
    Erreur de ma part, effectivement, le array() rapporte tout sauf l'ID

  7. #7
    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
    A toi de regarder ce qui ne va pas dans ton formulaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Points : 310
    Points
    310
    Par défaut
    j'ai essayé quelque chose qui fonctionne mais qui me parait tout de même étrange.
    Si dans mon formulaire je rajoute un INPUT VALUE=ID, alors l'enregistrement fonctionne, si je le supprime, l'enregistrement n'a pas lieu

    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
    <?php if (isset($_POST['modif_profil'])) {
    //fonction verification des champs
    $erreur = checkForm();
    	// pas d'erreur
    	if (empty($erreur)) {
    									//Protection par captcha
    									//if($_POST['captcha'] == $_SESSION['captcha']){
     
     
     
     
    	    $req = Cnx::connectCnx()->prepare('UPDATE  responsable SET resp_societe=:societe, resp_nom=:nom, resp_prenom=:prenom, resp_adresse=:adresse, resp_cp=:cp, resp_ville=:ville, resp_tel1=:tel1, resp_tel2=:tel2, resp_mail=:mail, resp_niveau=:niveau, resp_activate=:activate WHERE resp_id=:id');
    	    $req -> bindParam(':id', $_POST['id']);
    	    $req -> bindParam(':societe', $_POST['societe']);
                $req -> bindParam(':nom', $_POST['nom']);
                $req -> bindParam(':prenom', $_POST['prenom']);
                $req -> bindParam(':adresse', $_POST['adresse']);
                $req -> bindParam(':cp', $_POST['cp']);
                $req -> bindParam(':ville', $_POST['ville']);
                $req -> bindParam(':tel1', $_POST['tel1']);
                $req -> bindParam(':tel2', $_POST['tel2']); 
                $req -> bindParam(':mail', $_POST['mail']);
    	    $req -> bindParam(':niveau', $_POST['niveau']);
    	    $req -> bindParam(':activate', $_POST['activate']);
    	    $req -> execute(); 
     
    		/*}else{echo "Veuillez calculer le code de sécurité";}*/
    												echo '<pre>';
    												print_r($_POST);
    												echo '</pre>';
     
     
    	} else {
            echo '<div class="error">';
            foreach ($erreur as $e) {
                echo $e, '<br />';
            }
            echo '</div>';
        }
    }
    ?>
    <?php
    $req = Cnx::connectCnx()->prepare('SELECT * FROM responsable WHERE resp_id=:id');
    $req -> execute(array(
        'id' => $Auth->user('resp_id')                   
    )); 
    $user = $req->fetch();
    ?>
    <form enctype="multipart/form-data" action="modif_profil.php" method="post">
    <input id="id" name="id"	type="hidden" maxlength="30"	size="30" value="<?php echo $user->resp_id ?>" placeholder="id"/> <br />
    <input id="societe" name="societe"	type="text" maxlength="30"	size="30" value="<?php echo $user->resp_societe ?>" placeholder="Société"/> <br />
    <input id="nom" 	name="nom"		type="text" maxlength="30"	size="30" value="<?php echo $user->resp_nom?>" placeholder="Nom *"/> <br />
    <input id="prenom"  name="prenom"	type="text" maxlength="30"	size="30" value="<?php echo $user->resp_prenom?>" placeholder="Prénom *"/> <br />
    <input id="adresse" name="adresse"	type="text" maxlength="200"	size="30" value="<?php echo $user->resp_adresse?>" placeholder="Adresse *"/> <br />
    <input id="cp" 	 name="cp" 		type="text"	maxlength="10"	size="30" value="<?php echo $user->resp_cp?>" placeholder="Code Postal *"/> <br />
    <input id="ville" 	name="ville" 	type="text" maxlength="20"	size="30" value="<?php echo $user->resp_ville?>" placeholder="Ville *"/>	<br />
    <input id="tel1" 	name="tel1" 	type="text" maxlength="20"	size="30" value="<?php echo $user->resp_tel1?>" placeholder="Tél Port *"/> <br />
    <input id="tel2" 	name="tel2"  	type="text" maxlength="20" 	size="30" value="<?php echo $user->resp_tel2?>" placeholder="Tél Fixe"/> <br />	
    <input id="mail" 	name="mail"  	type="text" maxlength="100"	size="30" value="<?php echo $user->resp_mail?>" placeholder="Email *"/>	<br />
    <input id="mail2" 	name="mail2"  	type="text" maxlength="100"	size="30" value="<?php echo $user->resp_mail?>" placeholder="Confirmez votre Email *"/>	<br />
     
    <input id="activate" name="activate" type="text" maxlength="100"	size="30" value="<?php echo $user->resp_activate?>" placeholder="Actif=1 Banni=0 *"/>	<br />
    <input id="niveau"   name="niveau" 	  type="hidden" value="<?php echo $user->resp_niveau ?>"/> <br />
    <input id="captcha" name="captcha" type="text" size="30" placeholder="<?php echo captcha(); ?> = "/><br />
     
    <small style="color: #CFCFCF;"><i> * Obligatoire</i></small> <br />
    <input type="submit" name="modif_profil" value="Valider les modifications" />		<br />
    </form>
    De l'aide svp, je suis dessus depuis hier j'en peux plus

  9. #9
    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
    Ca ne fonctionne pas avec le formulaire que tu nous montres la ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Points : 310
    Points
    310
    Par défaut
    avec ce formulaire ça fonctionne très bien, c'est juste qu'il me semble étrange de devoir mettre un input hidden ID en fait...
    c'est gênant en rien?

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Y'a rien d'étrange surtout que tu l'utilise dans le "where" de ta requête donc il faut que l'id soit transmis.

    Par contre à partir du moment ou c'est un input de type hidden, bien entendu tu n'as pas à mettre d'attribut "size" ni évidemment d'attribut "placeholder".

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Points : 310
    Points
    310
    Par défaut
    Pour l'attribut size et placeholder c'est juste un copié collé bourrin de la ligne en dessous
    Merci de votre participation, alors je conserve mon code en l'état.
    et bonne journée

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

Discussions similaires

  1. jobb ne fait pas son travail
    Par pol2095 dans le forum Android
    Réponses: 0
    Dernier message: 28/09/2013, 20h57
  2. Commande SQL qui ne fait pas update ?
    Par Battosaiii dans le forum PL/SQL
    Réponses: 1
    Dernier message: 27/07/2011, 15h23
  3. compteur qui ne fait pas son travaile
    Par schats dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2011, 12h48
  4. opérateur > qui fait pas son job
    Par LDDL dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/04/2010, 10h31
  5. update qui fait pas son boulot !
    Par mami900 dans le forum SQL
    Réponses: 5
    Dernier message: 19/04/2007, 20h20

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