Useronline Script aktuallisiert nur bis zur ersten MySQL Anfrage

PZIKO333

Grünschnabel
UPDATE: Hat sich erledigt ^^ hatte falsche Tabellen Namen übergeben ^^


Hallo, ich habe ein Problem mit einer Funktion welche die Online User auf Abfrage aktuallisieren soll. Das Problem liegt darin das es zwar bis zur ersten MySQL Anfrage klappt sprich die "Offline" User entfernt aber danach die Daten nicht aktuallisiert. Wenn ich in der DB den Wert manuell auf 1 setzte entfernt die erste Anfrage diesen und setzt Ihn auf 0 so wie es sein soll da kein timestamp vorhanden ist. Jedoch setzen die folgenden Anfragen keine Werte und meine Fehlerfunktion gitb auch keine MySQL Errors aus. Bin schon langsam am verzweifeln XD da ich den Fehler einfach nicht finde.

PHP:
if(!function_exists ("countOnline"))
{
  function countOnline() {

    $zeit = time()+300;
	mysql_query("UPDATE users SET online='0' WHERE time<'".time()."'");
	mysql_query("UPDATE users SET online='1' WHERE user_id='".$_SESSION["user_id"]."'");
	mysql_query("UPDATE users SET time='".$zeit."' WHERE user_id='".$_SESSION["user_id"]."'");

    $query = mysql_query("SELECT * FROM users WHERE online='1'");
    $count = mysql_num_rows($query);
    echo "User Online: ".$count;

  }
}

aufgerufen wird die Funktion einfach per

PHP:
countOnline();

hab es auch schon versucht um die mögliche Quelle ein zu grenzen die Session Daten per global oder

PHP:
if(!function_exists ("countOnline"))
{
  function countOnline($userid) {

    $zeit = time()+300;
	mysql_query("UPDATE users SET online='0' WHERE time<'".time()."'");
	mysql_query("UPDATE users SET online='1' WHERE user_id='".$userid)."'");
	mysql_query("UPDATE users SET time='".$zeit."' WHERE user_id='".$userid)."'");

    $query = mysql_query("SELECT * FROM users WHERE online='1'");
    $count = mysql_num_rows($query);
    echo "User Online: ".$count;

  }
}

countOnline($_SESSION["user_id"]);

Weiter zu geben aber es hat alles nicht gefruchtet >.<

Danke schonmal im voraus.
 
Zuletzt bearbeitet:
1. Hast du in der Fuktion schon mal einfach geprüft, ob die userid wirklich den erwarteten Wert hat?

2. wie ist der Typ von time

3. Schau mal nach den einzelnen Queries per mysql_error() nach, ob sie evtl. Fehler produzieren.
 
Zurück