Se connecter avec
S'enregistrer | Connectez-vous

Actualisation d'affichages sql

Dernière réponse : dans Programmation

Bonjours, j'aimerais savoir vers où je doit chercher pour résoudre mon problème (afin de vous donner quelques pistes.. A moins que vous ayez la réponse directement):

J'ai un espace membre sur mon site. Lors de l'affichage des infos personnelles du membre tout va bien. Mais ensuite j'ai créé une page où il peut les modifier. Tout va bien jusque là. Mais le problème, c'est qu'une fois les informations éditées le type est obligé de se reconnecter pour mettre à jour l'affichage de ses données personnelles (qui sont inscrites dans la BDD) .

J'aimerais faire en sorte qu'après l'édition des données sql le type ne soit pas obligé de se déco/reco . Comment faire ?

Autres pages sur : actualisation affichages sql

Lassé par la pub ? Créez un compte

  1. <?php // lancement de la requête (on impose aucune condition puisque l'on désire obtenir la liste complète des propriétaires
  2. $sql = 'SELECT username, prenom, nom, email, eck FROM users WHERE username = \''.mysql_real_escape_string($USER_NAME).'\'';
  3. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  4.  
  5. // on recupere le resultat sous forme d'un tableau
  6. $data = mysql_fetch_array($req);
  7.  
  8. // on libère l'espace mémoire alloué pour cette interrogation de la base
  9. mysql_free_result ($req);
  10. mysql_close ();
  11. ?>
  12. <table style="border-style: none; border-width: 2px; text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
  13. <tbody style="border-style: solid; border-width: 2px;">
  14. <tr>
  15. <td style="text-align: center;">Pseudo</td>
  16. <td style="text-align: center;"><?php echo $data['username']; ?></td>
  17. </tr>
  18. <tr>
  19. <td style="text-align: center;">Prénom</td>
  20. <td style="text-align: center;"><?php echo $data['prenom']; ?></td>
  21. </tr>
  22. <tr>
  23. <td style="text-align: center;">Nom</td>
  24. <td style="text-align: center;"><?php echo $data['nom']; ?></td>
  25. </tr>
  26. <tr>
  27. <td style="text-align: center;">E-mail</td>
  28. <td style="text-align: center;"><?php echo $data['email']; ?></td>
  29. </tr>
  30. <tr>
  31. <td style="text-align: center;">eck</td>
  32. <td style="text-align: center;"><?php echo $data['eck']; ?></td>
  33. </tr>
  34. </tbody>
  35. </table>
  36. <br>
  37. <div style="text-align: center;">


Bon, après il y a du code (beaucoup: pour l'espace membre) avant le head. Mais cependant il y a ça qui est en rapport avec le code en amont:

  1. <?php // on se connecte à notre base
  2. $base = mysql_connect ('localhost', 'ccccc', 'cccccc');
  3. mysql_select_db ('cccccc', $base) ;
  4. ?>


Meme si je pense que ça vient surement pas de là :) 

ça peut pas venir de ça. c'est juste un code qui édite les infos. Après, une fois la modif dans la BDD faite il sert plus à rien. Donc ça doit venir de mon code qui affiche les infos. J'ai dû oublié quelque chose.

Bon, voila entièrement les codes:

  1. <?php
  2. session_start();
  3. require('xxxxxxx');
  4. require('xxxxxxx');
  5. require('xxxxx)
  6.  
  7. if(Session::validate() !== 0)
  8. {
  9. header("Location: ../noconnect.html");
  10. }
  11.  
  12. $base = mysql_connect ('localhost', 'xxxx', 'xxxx');
  13. mysql_select_db ('xxxx', $base) ;
  14.  
  15. $sql = 'SELECT username, prenom, nom, email, krs FROM users WHERE username = \''.mysql_real_escape_string($USER_NAME).'\'';
  16. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  17.  
  18. // on recupere le resultat sous forme d'un tableau
  19. $data = mysql_fetch_array($req);
  20.  
  21. // on libère l'espace mémoire alloué pour cette interrogation de la base
  22. mysql_free_result ($req);
  23. $USER_NAME = Session::get("username");
  24. ?>

(au dessus du head)


Et l'autre vous le connaissez déja:

  1. <table style="border-style: none; border-width: 2px; text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
  2. <tbody style="border-style: solid; border-width: 2px;">
  3. <tr>
  4. <td style="text-align: center;">Pseudo</td>
  5. <td style="text-align: center;"><?php echo $data['username']; ?></td>
  6. </tr>
  7. <tr>
  8. <td style="text-align: center;">Prénom</td>
  9. <td style="text-align: center;"><?php echo $data['prenom']; ?></td>
  10. </tr>
  11. <tr>
  12. <td style="text-align: center;">Nom</td>
  13. <td style="text-align: center;"><?php echo $data['nom']; ?></td>
  14. </tr>
  15. <tr>
  16. <td style="text-align: center;">E-mail</td>
  17. <td style="text-align: center;"><?php echo $data['email']; ?></td>
  18. </tr>
  19. <tr>
  20. <td style="text-align: center;">eck</td>
  21. <td style="text-align: center;"><?php echo $data['eck']; ?></td>
  22. </tr>
  23. </tbody>
  24. </table>
  25. <br>
  26. <div style="text-align: center;">


Seulement, maintenant que j'ai fait ces quelques modifs j'ai plus rien: j'ai le tableau 2 tout le temps.

Trouvé ! ça vient bien de ça ! ça vient de $USER_NAME = Session::get("username" ); .

Je m'explique: sur chaque page du compte j'ai un truc du genre "bienvenue $USER_NAME" . Et lorsque je modifie les infos (personnelles du compte) et que je modifie le pseudo. Alors j'ai toujours "Bienvenue $user_name" où user_name = A L'ANCIEN PSEUDO . Ce qui fait que lorsque le type affiche ses infos, le script va chercher les infos correspondant à son ancien pseudo .. Or elles n'existent plus . Donc il n'affiche rien . Comment faire pour remédier à cela ?

J'ai une id pour chaque membre, celle-ci ne change pas, peut etre je pourrais l'utiliser à la place d'user_name ..

Ben voila ^^ Problème réglé !

Il faut mettre $USER_ID = Session::get("user_id"); . (en tout cas, pour mon cas c'est ça) .

Batchy, je te met en meilleur réponse, car c'est grace à toi que j'ai pensé à ça ! Sinon je chercherais encore
Lassé par la pub ? Créez un compte