Fork me on GitHub




(1) 2 »


Suppression des utilisateurs inactifs
Aspirant
Inscrit: 26/02/2003 06:43
De Paris
Messages: 43
Bonjour, j'ai un petit soucis concernant cette table :

J'ai exactement 22 105 membres actifs et 1 323 membre inactifs

je voudrais supprimer les membres inactifs, et faire du ménage dans les membres actifs mais je ne peux rien supprimer :

je vais dans l'option trouver utilisateurs
je selectionne les options, il m'affiche les membres en question
je selectionne la liste proposée de la 1ere page et je clique sur effacer
Il me remet la liste des membres à effacer, et me demande de confirmer, je clique sur OUI et la je tombe à chaque fois sur une page blanche

J'ai vérifier, analyser, réparer, et optimiser la table mais rien n'y fait :(

Y aurait il une solution à ce problème ?

Je vous en remercie d'avance

Ps si cela peut vous aider, le site en question est : http://www.luniversims.com

[edit Christian] remplacement du titre original (table User) par un autre plus explicite qui ravira ceux qui utilisent la recherche avant de poster!

Posté le : 12/11/2005 13:27

Edité par Christian sur 12/11/2005 14:28:18
Partager Twitter Partagez cette article sur GG+
Re: table User
Régulier
Inscrit: 24/08/2005 18:35
Messages: 220
Passe par la gestion de la base de données (PhpMyAdmin)
Tu fais un tri par "level" dans la table users.
level = 0 : membres inactifs (ceux dont l'inscription n'a pas été validée)
Tu coches ceux que tu veux supprimer et en bas du tableau, tu cliques sur l'icone de suppression.
Pour supprimer d'autres membres, utilise d'autres tris...

Posté le : 12/11/2005 14:06
Partager Twitter Partagez cette article sur GG+
Re: table User
Aspirant
Inscrit: 26/02/2003 06:43
De Paris
Messages: 43
Merci beaucoup

et dans quel champ voit t-on la date de dernière connexion ?
(pour mes autres tri )
Leur nom me parle pas trop

Posté le : 12/11/2005 14:23
Partager Twitter Partagez cette article sur GG+
Re: table User
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Si tu veux supprimer tous tes utilisateurs inactifs en une seule fois, tu vas dans phpMyAdmin , tu fais une sauvegarde de ta table users (on ne sait jamais), puis tu cliques sur l'onglet Sql et dans la boite de texte tu colles :

delete from xoops_users where level=0;

Tu valides et c'est tout.

Posté le : 12/11/2005 14:26
Partager Twitter Partagez cette article sur GG+
Re: table User
Régulier
Inscrit: 24/08/2005 18:35
Messages: 220
pour la dernière connexion : c'est le champ "last_login"
le chiffre indiqué dedans doit etre le nombre de secondes ou de minutes après une date précise....faut voir avec le système de temps utilisé avec Xoops. Plus le chiffre est élevé, plus la dernière connexion est récente.Si le chiffre est nul, ca doit signifier que la personne ne s'est jamais connectée (enfin je suppose) après s'être inscrite.

Posté le : 12/11/2005 14:35
Partager Twitter Partagez cette article sur GG+
Re: table User
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
C'est une réponse imparfaite greated.

Le champ level=0 correspond aux futurs membres qui n'ont cliqué sur le lien d'activation, donc cela pourrait dire que - - leur adresse email est erronée
- le serveur de messagerie du destinataire a constaté que la boite était pleine et ne délivre pas le message
- le destinataire a reçu le message mais n'a pas cliqué sur le lien

Dans la solution que tu donnes, le membre peut avoir cliqué sur le lien et donc avoir level=1 sans pour autant avoir pris le temps de réaliser une connexion.

Posté le : 12/11/2005 14:39
Partager Twitter Partagez cette article sur GG+
Re: table User
Régulier
Inscrit: 24/08/2005 18:35
Messages: 220
c'est ce que je disais. Quand j'ai parlé de valeur nulle (dans mon dernier message), je faisais allusion au champ "last_login".

Posté le : 12/11/2005 15:03
Partager Twitter Partagez cette article sur GG+
Re: table User
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Oui mais se baser uniquement sur la valeur du champ last_login = 0 est une appréciation imparfaite d'un utilisateur inactif.

Par contre comparer la date d'inscription (user_regdate) avec la date du jour avec un écart supérieur à un certain nombre de jours pourrait effectivement donner à penser que l'utilisateur est inactif, même si la valeur de level est différente de zéro (activation effectuée)

Posté le : 12/11/2005 15:56
Partager Twitter Partagez cette article sur GG+
Re: table User
Régulier
Inscrit: 24/08/2005 18:35
Messages: 220
Récapitulatif :
level : si nul -> l'utilisateur n'a pas validé son inscription, donc il ne s'est jamais loggé depuis.
lastlogin : date de la dernière connexion.
regdate : date d'inscription de l'utilisateur. Ne change pas. Aucun rapport avec l'activité d'un membre. Si un membre est inscrit depuis 300 jours et s'est connecté hier et un autre membre est inscrit depuis 30 jours et s'est aussi connecté hier, bah la différence entre les deux sera énorme mais les deux personnes seront actives...Il n'y a que dans le cas où regdate=0 qu'on peut s'en servir.


Utilisateur inactif =
1/ au sens de Xoops : utilisateur dont l'inscription n'est pas validée -> level=0
2/ au sens d'un webmestre : utilisateur qui ne se connecte pas/plus au site -> JourJ-lastlogin=temps de non-activité Si lastlogin=0, alors la personne ne s'est jamais loggée depuis son iscription...donc à voir selon regdate, pour savoir si ca fait longtemps qu'il est inactif

Posté le : 12/11/2005 16:21
Partager Twitter Partagez cette article sur GG+
Re: table User
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
1)level : si nul -> NON level = 0
en informatique 0 et null sont deux valeurs différentes particulièrement avec les bases de données.

2)"Il n'y a que dans le cas où regdate=0 qu'on peut s'en servir"
user_regdate n'est jamais à zéro, ce champ a toujours une valeur

3)Pour connaitre les membres qui ne se sont pas connectés depuis plus de 300 jours, on peut utiliser cette requête

select uidunamefrom_unixtime(user_regdate), from_unixtime(last_login) , TO_DAYS(NOW()) - TO_DAYS(from_unixtime(last_login))
from xoops_users where level >and TO_DAYS(NOW()) - TO_DAYS(from_unixtime(last_login)) > 300;

la fonction datediff n'a pas été appliquée ici car elle ne fonctionne qu'à partir de MySql 4.1.1 (en principe)

Posté le : 12/11/2005 17:10
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

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