Query voor opschonen ledenlijst

Hulp nodig bij je installatie of kom je ergens niet uit? Probeer phpBB3! Problemen lossen we samen met je op.
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
Forumregels
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
Gesloten
Wijo
Berichten: 89
Lid geworden op: 09 jun 2006, 06:33

Query voor opschonen ledenlijst

Bericht door Wijo » 25 dec 2012, 23:49

  • Adres van je forum: http://www.bijenhouden.nl http://
    Event. modificaties op je forum:
    Wanneer ontstond het probleem?
    phpBB versie: 3.0.7.-PL1


    Heb je onlangs iets veranderd aan je forum?
    Wat is het probleem?
Ik heb een behoorlijke opschoning gemaakt in onze ledenlijst. Ik zoek nu nog hoe ik een zoekopdracht kan invoeren voor deelnemers, die zich op een bepaalde datum hebben geregistreerd, geen berichten hebben geplaatst, en hun laatste activiteit na bijvoorbeeld een week na registratiedatum is geweest. Ik wil deze deelnemers verwijderen uit de deelnemerslijst. Kan iemand een daarvoor een querie voor mij maken?
Laatst gewijzigd door Wijo op 26 dec 2012, 09:43, 1 keer totaal gewijzigd.
Met vriendelijke groet,
Wim.

Gebruikersavatar
Pola
Berichten: 1495
Lid geworden op: 19 jan 2012, 14:40
Contacteer:

Re: Querie voor opschonen ledenlijst

Bericht door Pola » 26 dec 2012, 00:02

Nee, het is beter om niet rechtstreeks in de database zaken te verwijderen door middel van MySQL queries. Veel gegevens zijn namelijk gekoppeld in meerdere tabellen. Je kunt niet zomaar alleen leden verwijderen uit de users tabel.

Ik twijfel even of 3.0.7-PL1 dezelfde mogelijkheden heeft als de laatste phpBB3 versies wat betreft het automatisch opruimen van leden.
Controleer eens of je het volgende kunt doen:
  • Beheerderspaneel
  • GEBRUIKERS EN GROEPEN
  • Gebruikers automatisch opruimen
  • Kies bij "Geregistreerd:" Voor en de datum waarvoor ze geregistreerd moeten hebben
  • Kies bij "Laatst actief:" Voor en de datum waarvoor ze het laatst actief geweest moeten zijn
  • Kies bij "Berichten:" Gelijk aan en "0".
  • Kies bij "Deactiveren of verwijderen:" Verwijder
  • Klik op Bevestig
Als je die mogelijkheden nog niet hebt, is het beter eerst je forum te updaten.
Welke stijl gebruik je en heb je MOD's geinstalleerd op je forum?
HGN op phpbb.com

Wijo
Berichten: 89
Lid geworden op: 09 jun 2006, 06:33

Re: Querie voor opschonen ledenlijst

Bericht door Wijo » 26 dec 2012, 00:18

Hallo Pola.

bedankt voor je snelle reactie.

De manier zoals jij die beschrijft spreekt me niet aan. De data zijn voor de verschillende deelnemers te verschillend. Ik moet het volgens mij echt met een querie in de database doen. Ik had nu ook al een behoorlijke opruiming gehouden in de database: deelnemers, die 0 berichten hadden en voor 31-12-2010 niet meer het forum hadden bezocht. Ik heb dat in phpbb_users gedaan.
Er zijn deelnemers, die zich ooit een keer geregistreerd hebben, geen berichten hebben geplaatst, maar toch het forum wel bezoeken en dus de berichten lezen. Deze deelnemers wil ik houden. Ik wil alleen de deelnemers nog verwijderen, die zich wel geregistreerd hebben maar daarna eigenlijk het forum niet meer bezocht hebben.
Met vriendelijke groet,
Wim.

Gebruikersavatar
Pola
Berichten: 1495
Lid geworden op: 19 jan 2012, 14:40
Contacteer:

Re: Querie voor opschonen ledenlijst

Bericht door Pola » 26 dec 2012, 00:55

Zoals ik aangaf kunnen de leden nog in diverse andere tabellen voorkomen.
Ze zullen zeker in de phpbb_user_group table staan.
Verder kan het dat ze voorkomen in
phpbb_forums_track
phpbb_forums_watch
phpbb_privmsgs
phpbb_privmsgs_to
phpbb_topics_track
phpbb_topics_watch
phpbb_zebra


Om leden te zoeken die langer dan 90 dagen geleden zich geregistreerd hebben, later dan een week na de regsitratie niet meer op het forum geweest zijn en geen berichten geplaatst hebben, kun je de volgende query gebruiken:

Code: Selecteer alles

SELECT user_id, username, user_posts, FROM_UNIXTIME(user_lastvisit), FROM_UNIXTIME(user_regdate), user_type FROM phpbb_users 
WHERE user_posts = 0 AND user_type < 2 AND (DATEDIFF(NOW(), FROM_UNIXTIME(user_regdate)) > 90) AND (DATEDIFF(FROM_UNIXTIME(user_lastvisit), FROM_UNIXTIME(user_regdate)) <= 7)
ORDER BY user_regdate ASC
Als user_type 1 is, betekent dat dat het gebruikersaccount niet geactiveerd is. Als user_type 0 is, dan is het een gewoon geactiveerd gebruikersaccount.
Leden die het forum helemaal niet bezocht hebben, hebben een user_last_visit datum van 1 januari 1970 (de start van de UNIXTIME tijdtelling).
HGN op phpbb.com

Wijo
Berichten: 89
Lid geworden op: 09 jun 2006, 06:33

Re: Querie voor opschonen ledenlijst

Bericht door Wijo » 26 dec 2012, 09:34

Bedankt Pola voor de uitleg en de querie.

--

Op die manier pik ik er nog 165 leden uit, waarvan ik de meesten er uit wil gooien. Zou je me nog kunnen uitleggen hoe ik dat het beste kan doen?
Berichten samengevoegd
- Ger
Met vriendelijke groet,
Wim.

Gebruikersavatar
John P
Berichten: 163
Lid geworden op: 29 sep 2012, 13:48
Contacteer:

Re: Query voor opschonen ledenlijst

Bericht door John P » 26 dec 2012, 11:14

Maak van de query

Code: Selecteer alles

SELECT username FROM phpbb_users 
WHERE user_posts = 0 AND user_type < 2 AND (DATEDIFF(NOW(), FROM_UNIXTIME(user_regdate)) > 90) AND (DATEDIFF(FROM_UNIXTIME(user_lastvisit), FROM_UNIXTIME(user_regdate)) <= 7)
ORDER BY user_regdate ASC
Je hebt nu een lijstje met gebruikersnamen die je kan gebruiken in het tabblad gebruikers automatisch opruimen, er van uitgaande dat je WHERE statement klopt.
Afbeelding
Webhosting, Custom MODs, Technical management, MOD installation and Webdesign

Wijo
Berichten: 89
Lid geworden op: 09 jun 2006, 06:33

Re: Query voor opschonen ledenlijst

Bericht door Wijo » 26 dec 2012, 11:57

Hallo John.

Bedankt. Op deze manier kan ik de deelnemers aanvinken en verwijderen.
Met vriendelijke groet,
Wim.

Gesloten