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 :

select après un update


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Par défaut select après un update
    Salut à tous ,
    voila je veux exécuter un requete de selection juste après un updae et afficher le resultat dans un tableau mais ça marche pas car j'obtiens les données non mise a jour , voila 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
    61
    62
    63
    <?php 
     
    $pass1=mysql_real_escape_string(htmlspecialchars($_POST['mot']));
    $pass2=mysql_real_escape_string(htmlspecialchars($_POST['con']));
    if($pass1 == $pass2){
     
    header ('Content-type: text/html; charset=utf-8'); 
    mysql_select_db($database_dbprotect, $dbprotect);
    $verif_query=sprintf("UPDATE personne SET paswd='".$pass1."' WHERE id_personne='".$_SESSION['id_personne'] ."'");
    $verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
    if($verif){
    echo'<script language="javascript"> alert("Mot de passe modifié"); </script>';
    $verif_query=sprintf("SELECT type,libelle FROM `personne`,`entite` WHERE personne.entite=entite.id_entite AND personne.id_personne='".$_SESSION['id_personne'] ."'");
    $verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
    if($ligne = mysql_fetch_array($verif)){
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Espace Gestion</title>
    <style type="text/css">
    <!--
    .style1 {
    	color: #FF6600;
    	font-weight: bold;
    }
    -->
    </style>
    <link rel="stylesheet" type="text/css" href="form8.css" />
     
    </head>
     
    <body>
    <table width="884" height="140" border="0" align="center">
      <tr>
        <th width="117" scope="col">Civilit&eacute; : <br />
        <span class="style1"><?php echo $_SESSION['civilite']; ?></span>&nbsp;&nbsp;&nbsp;</th>
        <th width="104" scope="col">Nom : <br />
        <strong class="style1"><?php echo $_SESSION['nom']; ?></strong>&nbsp;&nbsp;&nbsp; </th>
        <th width="119" scope="col">Pr&eacute;nom : <br />
        <strong class="style1"><?php echo $_SESSION['prenom']; ?></strong> </th>
        <th width="117" scope="col">Qualit&eacute; : <br />
        <strong class="style1"><?php echo $_SESSION['qualite']; ?></strong> &nbsp;&nbsp;&nbsp; </th>
        <th width="163" scope="col">Entit&egrave;: <br />
        <strong class="style1"><?php echo $ligne["type"]." ".$ligne["libelle"]; ?></strong>&nbsp;&nbsp;&nbsp;</th>
        <th width="99" scope="col">Identifiant : <br />
        <strong class="style1"><?php echo $_SESSION['login']; ?></strong> &nbsp;&nbsp;&nbsp; </th>
        <th width="135" scope="col">Mot de passe :<br />
        <strong class="style1"><?php echo $_SESSION['paswd']; ?></strong> </th>
      </tr>
     
    </table>
     
     
     
    </body>
    </html>
    <?php } 
    }}
    else{
    echo'<script language="javascript"> alert("Le mot de passe que vous avez entré est incorrect"); </script>';
    echo ' <br/> <a href="javascript:history.back()">retour</a>';}  ?>
    quand je vérifie la table je trouve que le champ est mise a jour mais dans l'affichage ça me donne la ligne non mise a jour, j'espere que j'ai bien expliqué mon problème

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Je me demande pourquoi tu utilises sprintf sans passer tes variables en arguments de la fonction, la façon dont tu l'utilises à très peu d'intérêts.

    Ce que tu vérifies dans ta variable $verif, c'est le résultat de ta requête (echec ou réussite), et pas si une ligne a bien été updatée, tu dois te servir de mysql_affected_rows() pour savoir si ta requête a mit à jour la ligne de ta table.

  3. #3
    Membre confirmé Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Par défaut
    re , j'ai remplacé if($verif) par if(mysql_affected_rows() != 0) mais ça marche pas , même l'alerte qui m'informe que la table est mise à jour ne se declanche pas, pouvez vous m'indiquer l'origine de cette erreur ?

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Si ton alert ne s'affiche pas, il ne reste que 2 solutions, soit $_SESSION['id_personne'] n'existe pas dans ta table, ce qui me paraît improbable vu que tu l'affiches juste après, donc j'en déduirais que $pass1 est strictement de même valeur que la colonne paswd de ta table.

  5. #5
    Membre confirmé Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Par défaut
    je viens d'afficher la variable $pass1 après le teste if(mysql_affected_rows() != 0) , le résultat est le nouveau mot de passe alors je crois que jusqu'à ici tout marche bien , mais pour l'affichage de la ligne mise a jour ça reste toujours le dernier mot de passe

  6. #6
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    J'avais pas fait attention, mais ce que tu affiches, c'est ce que contient ta session, et pas ce qui sort de ta table, il faut mettre à jour tes variables de sessions après ton update.

Discussions similaires

  1. Postgresql : pb de select après update
    Par pdelorme dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 04/07/2011, 22h00
  2. Notification de redémarrage après windows Update.
    Par genialk2000 dans le forum Sécurité
    Réponses: 2
    Dernier message: 22/02/2006, 15h12
  3. Conflit d'ecriture apres un update
    Par ouellet5 dans le forum Access
    Réponses: 9
    Dernier message: 22/10/2005, 04h35
  4. select apres submit
    Par mereyj dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 10/09/2005, 15h50
  5. concerver items d'un select apres rafraichissment
    Par menoce dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/08/2005, 15h41

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