Seite 1 von 1

Problem mit online Usern

Verfasst: 08.08.2004 08:07
von timo111
Hey

Hab ein kleines Script geschrieben welches alle angemeldeten User ausliest die gerade online sind. Das Ganze wird dann in einer Dropdown-Liste ausgegeben:

Code: Alles auswählen

<?
$sql = "SELECT u.user_id, u.username, s.session_logged_in, s.session_time
		FROM phpbb_users u, phpbb_sessions s
		WHERE u.user_id = s.session_user_id
		AND s.session_time >= ".( time() - 300 ) . " AND u.user_id != -1
		ORDER BY u.username ASC, s.session_ip ASC";  

$result = mysql_query($sql);

print "<form name='form1' method='post' action=''>";
print   "<select name='select'>";

while ($row = mysql_fetch_array($result)) {
print    "<option value='t'>" . $row[1] . "</option>";
	}
	
print  "</select>";
print "</form>";

?>
Soweit funktioniert auch alles wunderbar! Das Problem ist nur, dass User welche die Seite in mehreren Browserfenstern geöffnet haben auch öfter aufgeführt werden.
Wenn ich also mit drei offenen Fenstern auf der Seite surfe dann werde ich auch dreimal in der liste geführt.
Weiss jemand warum bzw. was ich dagegen tun kann?

Verfasst: 08.08.2004 09:54
von D@ve
Änder doch einfach die Abfrage in:

Code: Alles auswählen

SELECT DISTINCT u.user_id, u.username...
...ist zwar nicht die feine englische Art, aber funktioniert meistens.

Gruß, Dave

Verfasst: 08.08.2004 19:04
von timo111
Hey

Bringt leider nichts. Die User werden immernoch doppelt aufgeführt

Verfasst: 08.08.2004 19:48
von Blutgerinsel
versuche mal nachfolgendes SQL Statment (ungetestet)
allerdings muss der Unix Timestamp noch ausgeschlossen werden dein time() blabla

Code: Alles auswählen

Select * FROM phpbb_users U
RIGHT JOIN phpbb_sessions S on U.user_id=S.session_user_id
WHERE S.session_user_id != -1
group by S.session_user_id
order by U.username,S.session_ip

Verfasst: 08.08.2004 19:55
von timo111
Geht nicht. Gibt ca. 350mal 1 aus! :wink:

Den entscheidenden Hinweis hast du aber trotzdem gegeben. Und zwar "GROUP BY". Hatte ich irgendwie garnicht dran gedacht. Damit müsste es aber eigentlich gehen

Verfasst: 08.08.2004 19:59
von Blutgerinsel
timo111 hat geschrieben:Geht nicht. Gibt ca. 350mal 1 aus! :wink:
Sicher?

Habs gerade bei mir getestet und hatte dabei 2mal den selben User und 3 weitere verschiedene und hatte genau das Ergebnis was du wolltest
nämlich 4 Datensätze.....

kann das nicht nachvollziehen :roll:

[edit]
bei MySQL passt alles.........
[/edit]