Actualisation d'affichages SQL

Résolu
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015 - 25 juin 2010 à 20:48
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 26 juin 2010 à 09:14
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 ?
A voir également:

10 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
26 juin 2010 à 08:15
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 -
3
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
26 juin 2010 à 08:56
Ben voila ^^ Problème réglé !

Il faut mettre $USER_ID = Session::get("user_id" ); . (en tout cas, pour mon cas c'est ça)
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
25 juin 2010 à 21:46
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 -
0
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
25 juin 2010 à 22:02
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
25 juin 2010 à 22:05
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) ; 
?>
0
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
25 juin 2010 à 22:58
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']; ?>




0
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
25 juin 2010 à 23:32
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 .
0
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
26 juin 2010 à 08:26
$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);
.
0
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
26 juin 2010 à 08:45
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 ..
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
26 juin 2010 à 09:14
Content de t'avoir mis sur la voie.
N'oublie pas de clore ton thread ("réponse acceptée")

bonne continuation,


Kohntark -
0
Rejoignez-nous