PHP Letzte Aktivität anhand Benutzer ID ermitteln

  • Servus.


    Vielleicht ist es nur eine Kleinigkeit aber ich kenne mich leider nicht sonderlich gut aus mit dem Framework. :face_with_rolling_eyes:


    Login abfragen funktioniert bereits, dort musste man lediglich die global.php einfügen und "use wcf\system\WCF"

    Dann kann man bequem zum Beispiel mit "WCF::getUser()->userID" die ID herauszufinden.



    Ich würde gerne noch anhand der Benutzer ID herausfinden, wann der letzte Beitrag geschrieben wurde.

    Sprich, ich bräuchte einfach nur den Zeitstempel des letzten Beitrags eines Users.


    Gibt es da vielleicht schon eine kurze Funktion oder muss man dazu erst die gesamte Tabelle wbb_posts durchsuchen und sortieren?


    Wie gesagt, bin noch absoluter Laie auf dem Gebiet.:grinning_squinting_face:



    Grüße

  • Einfach ein select auf wbb1_post, absteigend sortieren nach ID oder time und filtern nach userID. Die Menge auf 1 limitieren und schon hast du, was du suchst.

  • Hat funktioniert, zumindest in der Test Datenbank mit einer importierten wbb1_post Tabelle.



    Allerdings baue ich vorher eine Verbindung zur Datenbank auf mit Passwort, Benutzernamen usw.


    Jetzt müsste es nur noch mit Woltlab funktionieren. :nerd_face:

    Würde da das includen der global.php ausreichen oder benötige ich noch etwas?

    Zitat

    require_once('global.php');

    use wcf\system\WCF;



    Und sieht dann so die Abfrage im Woltlab Stil aus? :nerd_face:

    Zitat

    $query = WCF::getDB()->prepareStatement("SELECT time FROM wbb1_post WHERE userID = ? ORDER BY time DESC LIMIT 1"))

    $user_id = "1"; // Test User ID

    $query->execute(array($user_id));

    return $query->fetchColumn();

  • Das Limit braucht hier nicht in den query. Als 2. Parameter der execute Methode reicht. Und array() schreibt man schon ewig nicht mehr.

  • Wie gesagt, bin noch Laie auf dem Gebiet, sonst würde ich ja nicht nachfragen.


    Die meisten PHP Tutorials im Netz findet sind halt überholt und wenn einem sonst keiner was vernünftig erklärt, wird das ja auch nichts...


    Jetzt, wo ich gerade auf das 'fetchColumn()' schiele, ist das 'LIMIT 1' dann nicht eigentlich obsolet, weil 'fetchColumn()' ja eh nur eine Zeile zurückgibt? :thinking_face:


    Und array() schreibt man schon ewig nicht mehr.

    Hier werden die Daten ja auch in einem array() geschrieben.

    Selbst hier in dem Beispiel vor einem Jahr wird es noch gemacht.
    Wie wird es denn stattdessen geschrieben? Hättest Du ein kurzes Beispiel?


    Ich mein, es ist eh nur für ein privates Software Projekt, daher stört es mich nicht, ob die Methode 'veraltet' ist, es muss funktionell sein.

  • Dieses Thema enthält 2 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!