Seite 1 von 3
Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 29.11.2012 22:39
von LisaserstesForum
Hi, ich möchte eine Datenbankabfrage schreiben, die mir die Usernamen der User auflistet, die
z.B. seit einem Monat keinen Beitrag mehr geschrieben haben.
Ich stehe noch ganz am Anfang und habe in der Datenbank jetzt erstmal gesucht, ob es das Datum
des letzten Beitrags überhaupt in der DB gibt.
Dabei habe ich unter phpbb_users die Tabelle user_lastpost_time gefunden.
Der Wert bei einem beliebigen User ist: 1350204619
Wie komme ich durch diese Zahl an das Datum?
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 29.11.2012 23:35
von BNa
LisaserstesForum hat geschrieben:1350204619
Normalerweise so:
Wenn Du es wie
hier* in der Memberliste haben möchtest, sag Bescheid.
*
LAST POST TIME
(ganz rechts)
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 29.11.2012 23:44
von LisaserstesForum
Ah, das geht schon sehr in die Richtung, die ich suche.
Also setzt das Forum aus dieser Zahl das Datum und die Uhrzeit zusammen, man kann aus der
Zahl alleine also nichts erkennen?
Die Datenbankabfrage soll diese Zahl ja prüfen, ob der letzte Beitrag länger her ist als x Tage.
Wenn nein, soll nicht passieren, wenn ja, soll der Username und die Emailadresse ausgegeben werden.
Ich muss aber dazu sagen, dass ich mit den Datenbankabfragen noch ganz am Anfang stehe, ich bringe
mir grade durch Tutorials bei, wie man einzelne Werte ausliest usw, ich bin also noch bei den Basics.
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 30.11.2012 00:15
von BNa
LisaserstesForum hat geschrieben:man kann aus der Zahl alleine also nichts erkennen?
Richtig. Die Syntax lautet im phpbb3:
$user->format_date('Unix_Zeit');
Unix_Zeit
beschreibt
die vergangenen Sekunden seit Donnerstag, den 1. Januar 1970 00:00 Uhr UTC,
format_date
die User formatierte Zeitanzeige, wie global im ACP oder lokal im UCP festgelegt.
LisaserstesForum hat geschrieben:Die Datenbankabfrage soll diese Zahl ja prüfen, ob der letzte Beitrag länger her ist als x Tage.
Wenn nein, soll nicht passieren, wenn ja, soll der Username und die Emailadresse ausgegeben werden.
Das wäre schon eine richtige Mod. Mal gucken, was sich da entwickelt.
Sollen es stets x
Tage sein? Wenn ja, würde es die Mod vereinfachen.
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 30.11.2012 10:50
von LisaserstesForum
Sachen gibts, danke für die Erklärung, das wusste ich nicht.
BNa hat geschrieben:
Das wäre schon eine richtige Mod. Mal gucken, was sich da entwickelt.
Sollen es stets x Tage sein? Wenn ja, würde es die Mod vereinfachen.
Ja, das soll ein fester Wert sein, in meinem Fall 60 Tage.
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 30.11.2012 23:09
von Miriam
LisaserstesForum hat geschrieben:Wie komme ich durch diese Zahl an das Datum?
LisaserstesForum hat geschrieben:Die Datenbankabfrage soll diese Zahl ja prüfen, ob der letzte Beitrag länger her ist als x Tage.
Wenn nein, soll nicht passieren, wenn ja, soll der Username und die Emailadresse ausgegeben werden.
In der DB (mySQL) ausführen:
Code: Alles auswählen
SELECT username AS Name, user_email AS 'E-Mail', from_unixtime( user_lastpost_time ) AS 'Letzter Beitrag'
FROM phpbb_users
WHERE UNIX_TIMESTAMP( ) - user_lastpost_time > 60 *24 *3600
AND user_type <>2
Sollte es am Ende doch so einfach gewesen sein?

Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 30.11.2012 23:56
von BNa
Miriam hat geschrieben:Sollte es am Ende doch so einfach gewesen sein?

Hat ja keiner gesagt, das es nicht so ist. Und, es hat ja auch sein Gutes: Wenn Du Dich immer vordrängelst, haben die anderen den Rockzipfel frei. Dies ist ja vom Spektrum der eigenen Freizeit abhängig und kein OP erwartet, das sowas in wenigen Tagen erledigt ist. Ich wollte eigentlich eine richtige Mod draus bauen, wo man die Tage in einem netten Formular eingeben kann und dies gleich hübsch formatiert in phpbb3 Manier ausgegeben wird. Was solls, nun muss der OP mit einer SQL Abfrage vorlieb nehmen.
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 01.12.2012 10:39
von LisaserstesForum
Miriam hat geschrieben:
In der DB (mySQL) ausführen:
Code: Alles auswählen
SELECT username AS Name, user_email AS 'E-Mail', from_unixtime( user_lastpost_time ) AS 'Letzter Beitrag'
FROM phpbb_users
WHERE UNIX_TIMESTAMP( ) - user_lastpost_time > 60 *24 *3600
AND user_type <>2
Hi Miriam, ich habe es eben getestet, funktioniert ohne Probleme, danke schön.
Wie müsste man das ändern, damit man neben dem letzten Beitrag noch den letzten Login sehen würde?
BNa hat geschrieben: Dies ist ja vom Spektrum der eigenen Freizeit abhängig und kein OP erwartet, das sowas in wenigen Tagen erledigt ist. Ich wollte eigentlich eine richtige Mod draus bauen, wo man die Tage in einem netten Formular eingeben kann und dies gleich hübsch formatiert in phpbb3 Manier ausgegeben wird. Was solls, nun muss der OP mit einer SQL Abfrage vorlieb nehmen.
Ich würde mich sehr über so eine MOD freuen. Denn natürlich wäre es angenehmer, wenn man das durch eine MOD im Adminbereich machen kann, anstatt sich erst im phpMyAdmin anzumelden und den Befehl auszuführen. Und ich glaube auch, dass sich außer mir auch noch andere über so eine MOD freuen würden.
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 01.12.2012 10:41
von Miriam
/*
Und ich glaube auch, dass sich außer mir auch noch andere über so eine MOD freuen würden.
Ist das nicht Motivation genug? Hau in die Tasten, BNA.
*/
Re: Datum des letzten Post durch Datenbankabfrage auslesen
Verfasst: 02.12.2012 13:50
von BNa
War ja schon mittendrin. Eine erste Demo gibts demnächst..