Datum des letzten Post durch Datenbankabfrage auslesen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
LisaserstesForum
Mitglied
Beiträge: 996
Registriert: 28.08.2008 20:20
Wohnort: Kassel

Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag 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?
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag von BNa »

LisaserstesForum hat geschrieben:1350204619
Normalerweise so:

Code: Alles auswählen

echo $user->format_date('1350204619');
Wenn Du es wie hier* in der Memberliste haben möchtest, sag Bescheid.

*LAST POST TIME (ganz rechts)
Verschoben von phpBB 3.0: Administration und Benutzung nach phpBB 3.0: Mod-Bastelstube am 29.11.2012 23:36 durch Metzle

LisaserstesForum
Mitglied
Beiträge: 996
Registriert: 28.08.2008 20:20
Wohnort: Kassel

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag 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.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag 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.
LisaserstesForum
Mitglied
Beiträge: 996
Registriert: 28.08.2008 20:20
Wohnort: Kassel

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag von LisaserstesForum »

BNa hat geschrieben:
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.
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.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag 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? :o
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag von BNa »

Miriam hat geschrieben:Sollte es am Ende doch so einfach gewesen sein? :o
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.
LisaserstesForum
Mitglied
Beiträge: 996
Registriert: 28.08.2008 20:20
Wohnort: Kassel

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag 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.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag 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. :grin:
*/
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Datum des letzten Post durch Datenbankabfrage auslesen

Beitrag von BNa »

War ja schon mittendrin. Eine erste Demo gibts demnächst..
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“