Sönke Tesch: Es wird immer 1 in die Datenbank eingetragen...

Beitrag lesen

Ich möchte gerne in eine Tabelle eintragen, welcher User auf welcher Seite gerade online ist.

Nanu, warum denn das?

$seiten = $db->query_first("SELECT seitenid FROM www_seiten WHERE kennung='".$page."'");

Wo ist denn da die Fehlerabfrage geblieben?

$anzahl = $db->num_rows("SELECT userid FROM www_aktuellon WHERE userid='".$user_id."'");

Falls Deine Datenbank count() unterstützt, solltest Du vielleicht lieber dieses benutzen, dann muß die Datenbank nicht noch extra alles raussuchen. Das wäre dann in etwa

$anzahl = $db->query_first("SELECT count(*) FROM www_seiten WHERE kennung='".$page."'");

$seiten = $db->query_first("SELECT seitenid FROM www_seiten WHERE kennung='".$page."'");

Diese Abfrage ist überflüssig, Du hast sie bereits oben erledigt.

$db->query("INSERT INTO www_aktuellon (userid, seitenid, time) VALUES ('".$user_id."','".$seiten['seitenid']."','".time()."')");

Siehe unten.

$gesamt = $page."->".$seiten[seitenid]."|".$user_id;

In $seiten[] fehlen Anführungszeichen.

echo setonlinelist(...); gibt die richtigen Werte aus.

Du solltest immer dort die Daten prüfen, wo sie auch gesetzt/benutzt werden, nicht nach oder vor weiteren Verarbeitungsschritten an einer anderen Stelle.
In diesem Fall bedeutet das: Schau Dir an, wie eigentlich Deine SQL-Zeilen aussehen. Stimmt dort die Angabe für seitenid nicht, muß der Fehle weiter oben in Deinem Skript liegen, gehe dann Stück für Stück mit var_dump() weiter hoch.

Gruß,
  soenk.e