User-Online-Counter

Versuch mal das:

PHP:
$ip = $_SERVER['REMOTE_ADDR']; 
$where = $_SERVER['REQUEST_URI']; 
$timestamp = time(); 
$timeout = 300; 
$noofrows = 0; 

$result1 = mysql_query("SELECT * FROM usersonline") or die(mysql_error()); 
    while ($ergebnis2 = mysql_fetch_array($result1))  // Fehlerzeile 1 
{ 
    if ($ergebnis2['ip'] == $ip) { 
        $noofrows = 1; 
    } 
} 

if ($noofrows == 1) { 
    mysql_query("UPDATE usersonline SET timestamp = '$timestamp', url = '$where' WHERE ip = '$ip'"); 
} 

if ($noofrows == 0) { 
    mysql_query("INSERT INTO usersonline (ip, timestamp, url) VALUES ('$ip', '$timestamp', '$where')"); 
} 

$alt = $timestamp-$timeout; 
mysql_query("DELETE FROM usersonline WHERE timestamp < '$alt'"); 

$ergebnis3 = mysql_query("SELECT DISTINCT ip FROM usersonline") or die(mysql_error()); 
 $online = mysql_num_rows($ergebnis3); // Fehlerzeile 2  

if ($online == 1) { 
    echo "$online user online"; 
} else { 
    echo "$online users online"; 
}
 
Bei der Gelegenheit solltest du auch gleich noch http://php.net/mysql_connect ausführen!

Wir (gehe ich mal von aus) sind davon ausgegangen, dass das gepostete Script ein Ausschnitt ist und vorher bereits eine Verbindung zur Datenbank aufgebaut wurde! Dies hast du aber offenbar nicht getan!
 
Hallo

Also erstmal ein großes Dankeschön an alle, für eure Mühe.
Leider habe ich es nicht geschaft, aber es macht nichts, ich habe jetzt ein anderes das funktioniert.

Ich muss da mal ganz viel nachlernen und lesen, und hoffen, das ich die Logig mal verstehe. :)
 
Nur so nebenbei:

Die Logik ist recht einfach zu verstehen:

1. Zum Datenbank-Server verbinden (mysql_connect(host, user, passwort))
2. Gewünschte existierende Datenbank auswählen (mysql_select_db(datenbankname))
3. Datensätze aus Tabellen lesen, löschen, anlegen, verändern (mysql_query())
4 .Verbindung zum Server beenden (mysql_close())
 
Zurück