Ankündigung

Einklappen
Keine Ankündigung bisher.

Ein Online User Counter

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ein Online User Counter

    Nabend,

    ich habe ein problem und zwar würde ich gerne die Anzahl alle online user als Zahl schreiben komme jedoch nicht hinterher.
    Habe schon einiges von der google suche ausprobiert, wurde jedoch nie was.

    PHP-Code:
    <?php
        error_reporting
    (E_ALL);
        include(
    "mysql.php");

        
    session_start();

        echo 
    "<table>";
        echo 
    " <tr>\n";
        echo 
    "  <td>\n";
        echo 
    "Nickname\n";
        echo 
    "  </td>\n";
        echo 
    "  <td>\n";
        echo 
    "Registrierungsdatum\n";
        echo 
    "  </td>\n";
        echo 
    "  <td>\n";
        echo 
    "Letzter Login\n";
        echo 
    "  </td>\n";
        echo 
    "  <td>\n";
        echo 
    " \n";
        echo 
    "  </td>\n";
        echo 
    " </tr>\n";

        
    $sql "SELECT
                        ID,
                        SessionID,
                        Nickname,
                        DATE_FORMAT(Registrierungsdatum, '%d.%m.%Y') as Datum,
                        Letzter_Login,
                        Letzte_Aktion
                FROM
                        User
                ORDER BY
                        Nickname ASC
               "
    ;
        
    $result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

        while (
    $row mysql_fetch_assoc($result)) {
            
    // existiert eine Session ID und der User
            // war nicht länger als 2 Minuten inaktiv, so wird er als online betrachtet
            
    if($row['SessionID'] AND (time()-60*$row['Letzte_Aktion']))
                
    $online "<span style=\"color:green\">online</span>\n";
            else
                
    $online "<span style=\"color:red\">offline</span>\n";
            echo 
    " <tr>\n";
            echo 
    "  <td>\n";
            echo 
    "<a href=\"profil.php?id=".$row['ID']."\">".$row['Nickname']."</a>\n";
            echo 
    "  </td>\n";
            echo 
    "  <td>\n";
            echo 
    $row['Datum']."\n";
            echo 
    "  </td>\n";
            echo 
    "  <td>\n";
            echo 
    date('d.m.Y H:i \U\h\r'$row['Letzter_Login'])."\n";
            echo 
    "  </td>\n";
            echo 
    "  <td>\n";
            echo 
    $online;
            echo 
    "  </td>\n";
            echo 
    " </tr>\n";
        }
        echo 
    "</table>";
    ?>
    Ich würde das gerne so haben das unten auf der seite steht: Momentan sind ? User online .

    kann mir da eventuell jemand helfen?


  • #2
    http://php.net/manual/de/function.mysql-num-rows.php

    Allerdings solltest du auf MySQLi umsteigen, denn die MySQL-Schnittstelle gilt als veraltet.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Zitat von StanBorito Beitrag anzeigen
      [PHP]if($row['SessionID'] AND (time()-60*2 < $row['Letzte_Aktion']))
      Dein Datenbankdesign ist defekt. Verwende als Format für Letzte_Aktion keinen Unixtimestamp sondern als Spaltenformat ein Datumsformat der Datenbank - dann kannst du gleich die Datenbank ausgeben lassen wer als online bzw. offline zählt.

      Ich würde das gerne so haben das unten auf der seite steht: Momentan sind ? User online .
      Und was hindert dich daran? Du musst in der Schleife nur mitzählen bei wievielen Usern du "online" ausgibst …

      Kommentar


      • #4
        Hallo,

        wenn du den Timestamp der letzten Aktion in der Datenbank hast, versuch doch mal folgendes.

        PHP-Code:
        $query "SELECT id FROM user WHERE letzte_aktion > time() - 60 * 2";
        $result mysql_query($query);
        $uersonline mysql_num_rows($result); 
        Weiß jetzt nicht, obs syntaktisch korrekt ist, aber so in etwa sol!te es funktionieren.

        Kommentar

        Lädt...
        X