Fork me on GitHub






question apropos de "users"
Newbie
Inscrit: 09/09/2008 17:57
Messages: 20
salut tous le monde ,

j'ai un base de donne contient des utilisateurs de mon ancien site , est ce que je peux les ajouter à la nouvelle base de donne qui contient aussi des nouveaux membres ?
si la reponse est oui , svp montrez moi comment ?

Merci d'avance!

Posté le : 15/08/2009 17:00
Partager Twitter Partagez cette article sur GG+
Re: question apropos de "users"
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Bonjour,

La réponse est peut-être !

Chaque membre possède un uid (un numéro unique) qui permet de l'identifier que ce soit dans la table des utilisateurs, celles des permissions, mais aussi dans les commentaires, forums, auteurs d'articles, etc...

Si tu n'as pas déjà autorisé la création de nouveaux membres sur ton nouveau site, la migration est facile car en dehors de l'uid=1 qui correspond à l'administrateur qui a créé le nouveau site et qui serait donc présent dans les 2 sites, tu conserves l'unicité des membres.

Dans le cas contraire, çà devient très compliqué, puisque tu te trouves avec des membres différents qui possèdent le même uid.

Enfin la méthode (requêtes sql) variera selon la version xoops du site ancien et la version xoops du nouveau site.

Posté le : 16/08/2009 00:31
Partager Twitter Partagez cette article sur GG+
Re: question apropos de "users"
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Pour le cas avec deux tables avec des utilisateurs on peut faire comme suivant, si le deux bdd ont le meme jeu de characteres et interclassement, les versions de XOOPS sont le meme, le structure de table users est le meme et le prefix des tables est differente (dans cette example on utilise xoopssrc et xoopsdst):
- sauvegardez les bases des donnees avant de commencer!

- utilisez phpMyAdmin en serveur source et allez au table xoopssrc_users du bdd source
- faites une export SQL et sauvegardez le a votre PC
- maitenant on travaille en phpMyAdmin du serveur de destination.
- allez au bdd de destination et faites une importe avec le fichier sauvegardee du pas precedente.
- maitenant il y a deux tables users dans le bdd: xoopssrc_users et xoopsdst_users.
- effacez en table xoopssrc_users le uid 1. C'est l'admin qui est deja present en xoopsdst_users.
- Dans le tab SQL entre le query suivante:
SELECT maxuid FROM `xoopssrc_users`

- Executez le query (Go) et notez le resultat.
- Arondi ce nummero en haut a une centaine (4321 -> 4400) et ca c'est notre offset.
- ouvrez le fichier sauvegardee et copiee le ligne insert:
INSERT INTO `xoopssrc_users` (`uid`, `name`, `uname`, `email`, `url`, `user_avatar`, `user_regdate`, `user_icq`, `user_from`, `user_sig`, `user_viewemail`, `actkey`, `user_aim`, `user_yim`, `user_msnm`, `pass`, `posts`, `attachsig`, `rank`, `level`, `theme`, `timezone_offset`, `last_login`, `umode`, `uorder`, `notify_method`, `notify_mode`, `user_occ`, `bio`, `user_intrest`, `user_mailok`) VALUES

- Mettez ce ligne dans une nouveau query SQL et modifiez le vers
INSERT INTO `xoopsdst_usersSELECT `uid` + 4400, `name`, `uname`, `email`, `url`, `user_avatar`, `user_regdate`, `user_icq`, `user_from`, `user_sig`, `user_viewemail`, `actkey`, `user_aim`, `user_yim`, `user_msnm`, `pass`, `posts`, `attachsig`, `rank`, `level`, `theme`, `timezone_offset`, `last_login`, `umode`, `uorder`, `notify_method`, `notify_mode`, `user_occ`, `bio`, `user_intrest`, `user_mailokfrom xoopssrc_users ;
A faire:
remplacez `xoopssrc_users` ( par `xoopsdst_users` SELECT
ajoutez + et le nombre offset apres 'uid'
remplacez ) VALUES par from xoopssrc_users ;
- Executez le SQL.
- Dans le tab SQL entre le query suivante:
SELECT maxuid FROM `xoopsdst_users`

- Executez le query (Go) et notez le resultat pe 6543. C'est le nombre de fin.
- Alors si il y a des utilisateurs double dedans, sortez le table au nom d'utilisateur (uname) par cette sql:
select from xoopsdst_users order by unameuid

- Parcourir la liste et effacez les doubles (celui avec le plus grande uid)
- Faites le meme pour le double adresse email:
select from xoopsdst_users order by emailuid

- Maitenant il faut mettre ce nouvelle utilisateurs dans le groupe d'utilisateurs enregistree.
- Executez le query suivant:
INSERT INTO `xoopsdst_groups_users_link(d.'uid'd.'groupid'SELECT s.`uid`, 2 FROM `xoopsdst_userss WHERE s.'uid' BETWEEN 4400 AND 6543
A faire: mettez les bon nombres pour offset et fin.
- Allez au table xoopssrc_users et selectionnez operation drop.

Vous pouvez tester cette solution en PC local (moi, j'en ai pas tester du tout) avec XAMPP. Sauvegardez le bdd destination et restaurez le en phpMyAdmin de XAMPP.

(Pour eventuellement effacer les utilisateurs ajoutees:
DELETE FROM `xoopsdst_users WHERE 'uid' BETWEEN 4400 AND 6543
)

Posté le : 16/08/2009 03:43

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+
Re: question apropos de "users"
Newbie
Inscrit: 09/09/2008 17:57
Messages: 20
Merci pour l'explication!

Posté le : 19/08/2009 02:06
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant




Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

98 Personne(s) en ligne (82 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 1 | Invité(s): 97 | montuy337513, Plus ...