Fork me on GitHub




(1) 2 »


Table xoops_groups_users_link
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Bonsoir,
La table xoops_groups_users_link et constituer de:
linkid = (je ne sais pô et ce n'est pas le propos)
groupid = relier aux groupes (1=admin; 2=membre enregistré et 3=anonyme
uid = relier au xoops_users (liste des membres)

Je viens de découvrir, (horreur)dans ma table, que certains membres sont classer de cette façon.

linkid - groupid - uid
1057 - 2 - 43
396 - 2 - 52
1201 - 2 - 68
5232 - 2 - 68
154 - 2 - 70
860 - 2 - 70
2556 - 2 - 71
5229 - 2 - 71

2526 - 2 - 72
1049 - 2 - 73
990 - 2 - 74
981 - 2 - 75
660 - 2 - 77
155 - 2 - 81
317 - 2 - 81
785 - 2 - 81

1965 - 2 - 82
520 - 2 - 83
649 - 2 - 85
2388 - 2 - 86
2372 - 2 - 87
671 - 2 - 88
973 - 2 - 89
476 - 2 - 90
1248 - 2 - 91
2666 - 2 - 92
Etc...Etc...

Le résultat de ses doublons, c'est que le membres "81" est 3 fois "2", c'est à dire, qu'il est compter trois fois dans le groupe des membres enregistrés :-o

J'ai trouver aussi le numéro d'un membre qui à été supprimé de la table xoops_user.

Voila, je pense être clair dans mes explications.

Normalement, une clé est unique, si le membre n° 3 est dans le groupe n°2, il peux être aussi dans un autre groupe, 1 ou 3, mais pas deux fois dans le même groupe.

Comment remédier à ce problème?

Bonne soirée

Posté le : 14/03/2008 20:18

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Xoops accro
Inscrit: 25/11/2004 12:53
De 48400 Florac - France
Messages: 3370
Bonsoir,

L'idée qui me vient à l'esprit : est-ce que ton formulaire d'inscription est le formulaire d'origine de xoops ou un hack qui permet d'enregistrer autre chose ? Le problème ne viendrait pas de là ?
Est-ce que les users qui ont plusieurs linkid ont une particularité par rapport aux autres ?

Qu'est-ce que ton post fait dans le forum "Future version" ?

Philippe.

Posté le : 14/03/2008 20:40
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Citation :

phmo a écrit:
Bonsoir,

L'idée qui me vient à l'esprit : est-ce que ton formulaire d'inscription est le formulaire d'origine de xoops ou un hack qui permet d'enregistrer autre chose ? Le problème ne viendrait pas de là ?
Est-ce que les users qui ont plusieurs linkid ont une particularité par rapport aux autres ?

Qu'est-ce que ton post fait dans le forum "Future version" ?

Philippe.

Bonsoir Philippe,
Je me suis dit que si le problème provenais de xoops, cela pouvait être utile pour la futur version..

En fait, j'utilise une page d'inscription de membres avec des critères ajouter, et Homme, Femme et Couple sont liés aux groupes Hommes, Femmes et Couples.

J'ai donc fais ceci:
Dans mon mainfile.php
Citation :

define( 'XOOPS_GROUP_ADMIN', '1' );
define( 'XOOPS_GROUP_USERS', '2' );
define( 'XOOPS_GROUP_ANONYMOUS', '3' );
define( 'XOOPS_GROUP_HOMMES', '4' );
define( 'XOOPS_GROUP_FEMMES', '5' );
define( 'XOOPS_GROUP_COUPLES', '6' );



Dans le fichier registrer.php, juste en dessous de la ligne:
$newid = $newuser->getVar('uid');
Citation :

if ($sexe == 'Homme') {
if (!$member_handler->addUserToGroup(XOOPS_GROUP_HOMMES, $newid)) {
echo _US_REGISTERNG;
include 'footer.php';
exit();
}
}
if ($sexe == 'Femme') {
if (!$member_handler->addUserToGroup(XOOPS_GROUP_FEMMES, $newid)) {
echo _US_REGISTERNG;
include 'footer.php';
exit();
}
}
if ($sexe == 'Couple') {
if (!$member_handler->addUserToGroup(XOOPS_GROUP_COUPLES, $newid)) {
echo _US_REGISTERNG;
include 'footer.php';
exit();
}


Et maintenant, quand un membre s'enregistre comme homme, il est En 2 = membre enregistré et en 4 groupe Hommes.

Mais je ne pense pas que le problème viens de là, d'autant plus qu'il ne peuvent plus modifier leurs "sexe" dans modifier son compte, puisque j'ai désactivé la case dans edituser.php.

Bonne soirée

Posté le : 14/03/2008 21:02

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
LOL
Citation :

eparcyl92 a écrit:
Bonsoir,
La table xoops_groups_users_link et constituer de:
linkid = (je ne sais pô et ce n'est pas le propos)
Et si justement... le probleme vient de là...

cette table est une table de relation entre la table group et la table user. C'est une relation avec une cardinalite 0..n des 2 cotes. Donc informatiquement cela se represente bien par une table avec normalement les cles des 2 tables en relation (donc ca c bon on l'a)
Citation :

eparcyl92 a écrit:
groupid = relier aux groupes (1=admin; 2=membre enregistré et 3=anonyme
uid = relier au xoops_users (liste des membres)

Et normalement les attributs qui peuvent etre portes par cette relation (en l'occurence la on n'en a pas)

Le probleme que tu remontes est lies a cette colonne linkid qui est un autoincrement et qui est la cle unique de cette table... donc pour la base chaque enregistrement est unique. Et effectivement fonctionnellement ce n'est absolument pas le cas.
J'ai essaye d'expliquer cela a Herve (je sais plus si c'etait cette table ou une autre mais il me semble bien que c'etait celle la) mais il a pas voulu comprendre... mieux il a essaye de m'expliquer a quoi servait une cle technique... lol

Enfin bref le probleme vient de cette colonne linkid qui ne sert a rien fonctionnellement et a rien techniquement (sauf a foutre la merde comme tu as pu le remarquer) en plus ca a tendance a ralentir le systeme. Il suffit de la virer, et de mettre en cle primaire de la table les 2 autres colonnes et le tour est joue bon avant il faut que tu supprimes les doublons, au niveau de programmes cette colonne est presente que dans la class membership et va voir elle sert a rien tu peux donc la virer sans aucun pb.

Pour supprimer les doublons c relativement simple il suffit de faire
create table temp_table as SELECT distinct groupid, uid FROM `xxxxx_groups_users_link`

ensuite tu peux supprimer la colonne dans la table groups_users_link et apres recopier les donnees dedans

Apres il y a des choix a faire
- soit tu rajoutes une cle primaire sur les 2 colonnes et donc tu n'as pas a gerer l'unicite par prg, mais il faut encore choisir l'ordre groupid, uid ou uid, groupid... ca peut avoir une importance sur des grosses tables en terme de temps de reponse en fonction des requetes qui sont faites le plus souvent on demande plus souvent la liste des gens d'un groupe ou a quel groupe appartient un user? il me semble que l on se demande plus souvent a quel groupe appartient un user et dans ce cas il faut mieux mettre uid, groupid (et en passant on peut inverser l'ordre de creation de la table) mais il faut voir...
- soit on rajoutes pas de cle primaire et dans ce cas il faut gerer l'unicite par programme dans la classe membership (et etre sur que personne n'ira mettre a jour cette table par ailleurs)


Voilà...

Posté le : 14/03/2008 21:05
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
OUAAAAAAAAAAAAWWWWWWWWWWWWWWWW !!!!!!!!!!
J'ai fais tout ce que tu as dit:
Pour supprimer les doublons c relativement simple il suffit de faire
create table temp_table 
as SELECT distinct groupiduid FROM `xxxxx_groups_users_link`

et
ensuite tu peux supprimer la colonne dans la table groups_users_link et apres recopier les donnees dedans

Apres il y a des choix a faire
soit tu rajoutes une cle primaire sur les 2 colonnes et donc tu n'as pas a gerer l'unicite par prgmais il faut encore choisir l'ordre groupid, uid ou uid, groupid...


De 4427 lignes, j'ai à présent 3546 lignes.

Daprès mes calculs, si chaques membres de mon site doit avoir deux lignes. J'ai 1927 membres, donc, il faudrait 3854 lignes. :-o il m'en manque donc 308...
Ou bien, j'ai rien compris....

Bonne soirée et merci pour l'astuce

Posté le : 14/03/2008 22:30

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Xoops accro
Inscrit: 25/11/2004 12:53
De 48400 Florac - France
Messages: 3370
Citation :
Qu'est-ce que ton post fait dans le forum "Future version" ?

Citation :
Je me suis dit que si le problème provenais de xoops, cela pouvait être utile pour la future version..


C'était une question (un peu au second degré), pas une critique

Je n'avais pas l'argumentation de "garrath" mais je pensais que ça venait de ton hack de la procédure d'inscription. Essaye peut-être de voir précisément sur quelles opérations/modifications sont générés les doublons.

Philippe.

Posté le : 14/03/2008 22:35
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Si tu as fait la requete comme indique au dessus tu ne peux pas avoir supprimer de donnees interressantes, c'est juste que tu as certain membre qui n'etait de base que dans un groupe.
(peut etre inscrit avant que tu mettes en place le sexe?)

En passant couple c'est un sexe?


Maintenant tu es sur de pas avoir de doublon ca sera gere automatiquement par la base de donnee, par contre :
- il faudra faire attention au prochaine maj de xoops (a moins que cela soit corrige)
- cela n'empeche pas qu'il faudrait corrige le petit bug dans le prog qui leur a permis de creer les doublons (soit dans ton hack soit dans xoops de base...)

Il faudrait verifier le nombre de doublons user/group ailleurs pour voir si cela vient du hack ou de xoops.

Posté le : 14/03/2008 22:49
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
En fait, je me suis aperçu du problème, parce que, quand j'ai créer les groupes Hommes, Femmes et couples, j'ai fais "Trouver les utilisateurs pour ce groupe" et en saisissant les membres déjà inscris, ayant mentionner "hommes dans inscription.
C'est là que j'ai vu que la somme des hommes, femmes et couples ne correspondait pas aux nombres de membres inscrit.
Pour mes 308 lignes manquantes, j'ai vu le problême, il y a des membres sur des groupes unique, je vais devoir me les coltiner à la pogne , c'est ça l'informatique, j'en apprend tout les jour
Bonne soirée

Posté le : 14/03/2008 22:57

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Bonjours à toutes et tous,
Je ressort ce sujet car au jour d'aujourd'hui, il ne semble pas avoir été pris en compte.

Dans ma table _users j'ai 1841 membres

Donc, en standard, table _groups_users_link je devrai trouver 1841 lignes en (2 = utilisateurs enregistrés) et 1 lignes en (1 = le webmaster)

Total = 1842 lignes.

Et bien, je viens de passer mon temps à rechercher les correspondances entre "UID" de l'user et celui de users_link.

Bilan, j'avais 41 membres non liés aux (2 = utilisateurs enregistrés), mais par contre, j'ai du supprimer des lignes dans la table _groups_users_link car j'en avais 2082 au lieu de 1842.

Ce que j'ai remarqué et effacé, c'est que des numéro d'"UID" était deux fois ajouter en (2 = utilisateurs enregistrés) de la colonne "groupid" de _groups_users_link.

Maintenant, j'ai supprimé les doublons et ajouté les "uid" des membres passer aux oubliettes et c'est ok.

Voici mes conclusions:
La table _groups_users_link accepte les "uid" et les "groupid" identiques, étant donnée que la clé "linkid" et différents pour chaque lignes.

Il serait souhaitable de ne pas permettre, dans la gestion des groupes, la sélection dans la liste de membres ceux qui y sont déjà.

Je sais ... c'est excédant de caféine-nicotine qui me pousse à écrire comme çà , mais est-ce que quelqu'un peux vérifier si ce que je dis est pareil pour vous? avant de le signaler aux pro

Bonne journée

Posté le : 17/09/2009 14:08

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Table xoops_groups_users_link
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Chez moi ca correspond.
Il y a eu une restore du table dans le passee?

Posté le : 17/09/2009 18:58

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

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

49 Personne(s) en ligne (35 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 49 | Plus ...