login  Naam:   Wachtwoord: 
Registreer je!
 Forum

last_seen veld.

Offline nick5556 - 26/02/2009 16:42
Avatar van nick5556PHP beginner Hallo,

Ik heb een veld in een tabel, dit veld wil ik gebruiken om inactiefe gebruikers te verwijderen. Alleen ik heb geen idee hoe ik dat moet coderen. Ik heb er laatst ergens wel een topic over gezien, alleen ik weet niet meer waar dat topic te vinden is.

Nick

8 antwoorden

Gesponsorde links
Offline Rik - 26/02/2009 16:46
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je kunt dat veld bijvoorbeeld elke keer als een gebruiker inlog updaten.

Als je elke week een keer een cronjob draait kun je alle inactieve gebruikers zo uit de tabel deleten.
Offline nick5556 - 26/02/2009 16:51
Avatar van nick5556 PHP beginner Zover was ik ook  

Alleen, dat last_seen veld is een DATE veld. Ik heb trouwens al een probleem als ik iets in een DATE veld zet, want dan blijft het veld leeg  . Dan draait er elke week een cronjob maar, dan moet ik toch alleen de inactieve gebruikers verwijderen? Dus dan moet ik eerst de inactieve gebruikers selecteren. Ik heb dus echt geen idee meer hoe ik dit moet doen.. 

Nick
Offline Rik - 26/02/2009 17:57
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als het veld leegblijft heb je waarschijnlijk een fout in je query. Zet eens fouten aan en kijk wat mysql_eror() geeft.

Zo'n query zou echt genoeg moeten zijn:
  1. UPDATE tabel_met_gebruikers SET last_seen = CURDATE();


En om dan te verwijderen:
  1. DELETE FROM tabel_met_gebruikers WHERE DATEDIFF(CURDATE(), last_seen) > 123
waarbij 123 het aantal dagen is dat iemand inactief mag zijn.
Offline Ibrahim - 01/03/2009 21:21
Avatar van Ibrahim PHP expert Ik vind het wel een raar idee van je om gebruikers te verwijderen na een specifieke periode. Mijn idee zou eerder zoiets zijn:

1) Stuur een mailtje naar alle gebruikers die x aantal maanden inactief zijn, dat je ze mist ofzo 

2) Wacht nog een maand, en mail ze dat ze binnen een week op non-actief gezet worden als ze inactief blijven. (niet dreigende toon gebruiken natuurlijk )

Nooit een gebruiker verwijderen, wie weet heb je ergens records die gelinkt zijn aan de gebruiker. Die records zullen dan nutteloos zijn en je zult ze dan moeten verwijderen, waardoor er gaten in je database vind.

Ik raad het in ieder geval af 
Offline Aar - 02/03/2009 20:14
Avatar van Aar PHP interesse Als je gebruikers wilt verwijderen. 'Flag' ze dan liever als verwijderd, met een veldje in de database. Uiteraard bij inloggen en het profiel etc een controle of iemand ook niet verwijderd is.
Offline Richard - 02/03/2009 20:50
Avatar van Richard Crew algemeen Niet verwijderen, maar zoals Aar al zegt een flag zetten om aan te geven dat die gebruiker niet actief is. Zo behoud je ook de integriteit van je data (hoewel je dat met foreign keys -gebruik je InnoDB?- ook kunt oplossen).

Hierbij gebruik ik zelf meestal een view zodat ik niet steeds dat stukje SQL zelf hoef te doen. :-)

  1. CREATE VIEW actieve_gebruikers AS
  2. SELECT *
  3. FROM gebruikers
  4. WHERE gebruiker_laatst_gezien >= NOW() - INTERVAL 1 MONTH


En dat kun je dan weer gebruiken:

  1. SELECT *
  2. FROM actieve_gebruikers
  3. WHERE gebruiker_naam = 'Jantje'
  4. AND gebruiker_wachtwoord = MD5('pietje')
Offline Rik - 03/03/2009 15:37
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
@JeXus,
Dat CREATE VIEW kende ik niet. Het ziet er in ieder geval erg nuttig uit.  
Offline maigel - 03/03/2009 20:47
Avatar van maigel PHP beginner
Boukefalos schreef:
@JeXus,
Dat CREATE VIEW kende ik niet. Het ziet er in ieder geval erg nuttig uit.  

ik had hier ook nog nooit van gehoord, lijkt me inderdaag zéér handig
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s