Actualisation d'affichages SQL [Résolu]

Signaler
Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
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 ?

10 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
C'est très bien que tu donnes du code et des images, mais tel que tu le fais il n'est vraiment pas simple de s'y retrouver.

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

Tu veux dire qu'une fois que l'utilisateur a modifié ses données elles n'apparaissent pas (== ta seconde image) ?

Où et comment est définie $USER_NAME (??)
Si cette variable n'est pas modifiée en même temps que l'update, il est clair que ça te donnera le résultat que tu as actuellement, d'où mon premier message :
Il suffit (sans doute) de regarder comment sont retirées ces données lors de la connexion (cad lorsque le membre entre son login/pass) et de faire appelle à la même méthode lors de la mise à jour de la DB (après édition)


Cordialement,

Kohntark -
Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015

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

Il faut mettre $USER_ID = Session::get("user_id" ); . (en tout cas, pour mon cas c'est ça)
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Impossible de répondre comme ça, il faudrait plus d'infos et éventuellement du code.
Il suffit (sans doute) de regarder comment sont retirées ces données lors de la connexion et de faire appelle à la même méthode lors de la mise à jour de la DB (après édition)

Cordialement,


Kohntark -
Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015

Ok, je te donne le code dans 2sec. En attendant, voila les images:

http://img638.imageshack.us/i/25410813.jpg/

Uploaded with ImageShack.us

Et voila ce que ça donne après la modif:

http://img685.imageshack.us/i/59319196.jpg/

Uploaded with ImageShack.us
Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015

Voila:

<?php // lancement de la requête (on impose aucune condition puisque l'on désire obtenir la liste complète des propriétaires
$sql 'SELECT username, prenom, nom, email, eck FROM users WHERE username  \''.mysql_real_escape_string($USER_NAME).'\'';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
// on recupere le resultat sous forme d'un tableau 
$data = mysql_fetch_array($req); 
// on libère l'espace mémoire alloué pour cette interrogation de la base 
mysql_free_result ($req); 
mysql_close (); 
?>
Pseudo,
<?php echo $data['username']; ?>,

----

Prénom,
<?php echo $data['prenom']; ?>,

----

Nom,
<?php echo $data['nom']; ?>,

----

E-mail,
<?php echo $data['email']; ?>,

----

eck,
<?php echo $data['eck']; ?>







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:

<?php // on se connecte à notre base 
$base = mysql_connect ('localhost', 'ccccc', 'cccccc'); 
mysql_select_db ('cccccc', $base) ; 
?>
Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015

Bon, voila entièrement les codes:

<?php
session_start();
require('xxxxxxx');
require('xxxxxxx');
require('xxxxx)

if(Session::validate() !== 0)
{
    header("Location: ../noconnect.html");
}

$conn = MysqlConnect::connect();
MysqlConnect:: db_use($conn, "");
$query = new MysqlQuery($conn);
$user_id = Session::get("user_id");

$sql 'SELECT username, prenom, nom, email, krs FROM users WHERE username  \''.mysql_real_escape_string($USER_NAME).'\'';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());  
 
// on recupere le resultat sous forme d'un tableau  
$data = mysql_fetch_array($req);  
 
// on libère l'espace mémoire alloué pour cette interrogation de la base  
mysql_free_result ($req);
?>

(au dessus du head)


Et l'autre vous le connaissez déja:

<?php // lancement de la requête (on impose aucune condition puisque l'on désire obtenir la liste complète des propriétaires
$sql 'SELECT username, prenom, nom, email, eck FROM users WHERE username  \''.mysql_real_escape_string($USER_NAME).'\'';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
// on recupere le resultat sous forme d'un tableau 
$data = mysql_fetch_array($req); 
// on libère l'espace mémoire alloué pour cette interrogation de la base 
mysql_free_result ($req); 
mysql_close (); 
?>
Pseudo,
<?php echo $data['username']; ?>,

----

Prénom,
<?php echo $data['prenom']; ?>,

----

Nom,
<?php echo $data['nom']; ?>,

----

E-mail,
<?php echo $data['email']; ?>,

----

eck,
<?php echo $data['eck']; ?>




Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015

Heu, remplacer:

$conn = MysqlConnect::connect();
MysqlConnect:: db_use($conn, "");
$query = new MysqlQuery($conn);
$user_id = Session::get("user_id");

par :

$base = mysql_connect ('localhost', 'xxxx', 'xxxx');
mysql_select_db ('xxxx', $base) ; .

Seulement depuis que j'ai fait quelques modifs, j'ai plus que le tableau 2.. Tout le temps .
Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015

$USER_NAME = Session::get("username");


Désolé, j'ai oublié de le selectionner lors du copier coller. Donc normalement, ce bout de code est à placer juste après
mysql_free_result ($req);
.
Messages postés
93
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
20 avril 2015

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 ..
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Content de t'avoir mis sur la voie.
N'oublie pas de clore ton thread ("réponse acceptée")

bonne continuation,


Kohntark -