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