Réintégrer un désinscrit...

Started by GGPassion, July 20, 2005, 10:53:06 AM

Previous topic - Next topic

GGPassion

Bonjour à tous,

Un de mes membres s'est désinscrit...
De ce fait, tous ses messages sont affichés comme postés sur son pseudo mais en invité.
Or il souhaite réintégrer le forum.
Bien sur il pourrait ouvrir un nouveau compte et repartir de zéro, mais est-il possible de lui redonner son compte précédent?
Comme il n'apparait plus nul part, je me demande comment faire?
D'avance merci.
2 Forums SMF sous le coude:
SMF 1.0.5 | SMF 1.1 RC 1
GG Forum | DjDcube Web

Lunatic_10QT

#1
Bonjour,

Il faut qu'il crée un nouveau compte, ensuite il te faut exécuter plusieurs requêtes dans l'outil permettant de gérer ta base de données (phpmyadmin sans doute ?)

1/ Réattribuer les anciens messages

Il faut exécuter la requête suivante :

UPDATE smf_messages SET ID_MEMBER="xxx", posterEmail="yyy" WHERE ID_MEMBER="0" AND poster_Name="zzz"

En remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • yyy par le mail actuel de l'utilisateur
  • zzz par l'ancien pseudo de l'utilisateur (que ce soit ou non le même que l'actuel)

2/ Modifier la date d'inscription

Pour que les stats soient correctes il faut redonner une date d'inscription antérieure ou égale au premier message de l'utilisateur. Pour la trouver il faut effectuer la requête suivante :

SELECT posterTime FROM smf_messages where ID_MEMBER="xxx" ORDER BY ID_MSG ASC LIMIT 0,1

xxx est à remplacer par le numéro actuel de l'utilisateur. Avec cette requête tu obtiens une valeur que tu notes.

Tu exécutes ensuite la requête suivante pour remplacer la date d'inscription :

UPDATE smf_members SET date_Registered="ttt' WHERE ID_MEMBER="xxx'

En remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • ttt par le numéro précédemment noté

3/ Compter le nombre de messages posté au total

L'outil d'administration ne répare pas ce qui devient une erreur (les anciens messages n'étant plus comptés). Donc il faut les compter soit même :

SELECT COUNT(*) FROM smf_messages WHERE ID_MEMBER="xxx"

Pour xxx, pareil que précédemment. Le nombre qui apparait est donc le nombre de message postés. Pour le rétablir :

UPDATE smf_members SET posts="ppp' WHERE ID_MEMBER="xxx'

Où ppp est le nombre de posts, noté plus haut.

Voilà je crois que c'est tout :)

GGPassion

Ok, je te remercie du coup de main, je lui dis de se ré-inscrire et j'essaie ça.

Merci  ;)
2 Forums SMF sous le coude:
SMF 1.0.5 | SMF 1.1 RC 1
GG Forum | DjDcube Web

fonfonsd

Quote from: Lunatic_10QT on July 20, 2005, 05:16:59 PM
Bonjour,

Il faut qu'il crée un nouveau compte, ensuite il te faut exécuter plusieurs requêtes dans l'outil permettant de gérer ta base de données (phpmyadmin sans doute ?)

1/ Réattribuer les anciens messages

Il faut exécuter la requête suivante :

UPDATE smf_messages SET ID_MEMBER="xxx", posterEmail="yyy" WHERE ID_MEMBER="0" AND poster_Name="zzz"

En remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • yyy par le mail actuel de l'utilisateur
  • zzz par l'ancien pseudo de l'utilisateur (que ce soit ou non le même que l'actuel)

2/ Modifier la date d'inscription

Pour que les stats soient correctes il faut redonner une date d'inscription antérieure ou égale au premier message de l'utilisateur. Pour la trouver il faut effectuer la requête suivante :

SELECT posterTime FROM smf_messages where ID_MEMBER="xxx" ORDER BY ID_MSG ASC LIMIT 0,1

xxx est à remplacer par le numéro actuel de l'utilisateur. Avec cette requête tu obtiens une valeur que tu notes.

Tu exécutes ensuite la requête suivante pour remplacer la date d'inscription :

UPDATE smf_members SET date_Registered="ttt' WHERE ID_MEMBER="xxx'

En remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • ttt par le numéro précédemment noté

3/ Compter le nombre de messages posté au total

L'outil d'administration ne répare pas ce qui devient une erreur (les anciens messages n'étant plus comptés). Donc il faut les compter soit même :

SELECT COUNT(*) FROM smf_messages WHERE ID_MEMBER="xxx"

Pour xxx, pareil que précédemment. Le nombre qui apparait est donc le nombre de message postés. Pour le rétablir :

UPDATE smf_members SET posts="ppp' WHERE ID_MEMBER="xxx'

Où ppp est le nombre de posts, noté plus haut.

Voilà je crois que c'est tout :)

bjr

je reprends un vieux message mais quand je fais la première ligne de ton aide cela na marche pas

faut bien faire cela dans l'onglet requete de phpadmin

Lunatic_10QT

Oui. « Ça marche pas « est un peu court (apprenez à détailler plus vos problèmes, que diable ! :P)

fonfonsd

#5
je m'explique, je vais donc dans phpmyadmin, dans ma base de donné je vais dans l'onglet requete et j'effectue la première requette en remplissant comme il faut et voila ce que j'obtiens :

Base de données db_fonfonsd - Table mx94718_smf_messages sur le serveur mysql.ironie.org
Erreur

requête SQL : 

UPDATE smf_messages SET ID_MEMBER = "18",
posterEmail = "[email protected]" WHERE ID_MEMBER = "0" AND posterName = "serge"

MySQL a répondu:

#1146 - Table 'db_fonfonsd.smf_messages' doesn't exist



alors que dans ma base de données fonfonsd j'ai bien  la base smf_messages

merci

j'ai trouvé fallait que je change mon prefixe base par mx94718_XXX

par contre pour la dernière ligne de requette pour reatribuer les sujets j'ai

MySQL a répondu:


#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT ID_MSG
FROM mx94718_smf_messages
WHERE id_member =  "18"

merci

Lunatic_10QT

Il y a une coquille dans la dernière requête, le 'ppp' est entouré par un guillement simple et un double. N'utilise que des simples. Idem pour le 'xxx'.

Advertisement: