Datenbank Abfrage wer ist Online

Brian Folte

Angesehenes Mitglied
Nun schlage ich mich mit dem Thema wer ist Online herrum, irgendwie wird es mir einfach nicht angezeigt hier die Datenbank abfrage:

CODE $abfrageop = ("SELECT * FROM generallog where benutzer=$benutzer");
$ergebnisop = mysql_db_query($mysqldbname,$abfrageop,$db);
while (list($id,$benutzer,$pass,$ablauftime,$idadr) = mysql_fetch_row($ergebnisop))


So funktioniert es nicht. Wenn ich aber hinten anstatt $benutzer einen usernamen eintrage dann wird mir komischerweise der benutzer angezeigt aber alle weiteren nicht.

Klärt mich bitte auf, wie starte ich hier eine richtige Abfrage, was habe ich genau übersehen?

LG Brian und danke für euere Geduld mit mir
wink.gif
 
Du fragst ja nur einen Benutzer aus der Datenbank ab, da die Variable $benutzer ja nur einen Wert annimmt.

Welches Feld in der Datenbank sagt Dir denn, ob ein Benutzer on oder off ist? Wäre dies beispielsweise das Feld "Status", welches für online eine 1 und für offline eine 0 beinhalten würde, dann wäre die Abfrage:

CODE $abfrageop = ("SELECT * FROM generallog where status= '1'");


 
So ein feld besitze ich nicht, ich habe nur folgende: id, ist für die Session id.
benutzer, hier wird der username gespeichert.
ablauftime und idadr .

Hier werden die ganzen zahlen angezeigt die natürlich bei jedem Login anders sind.

Wenn kein user Online ist steht auch nix in der tabelle.

LG Brian
 
Wenn ich jetzt folgende Abfrage mache funktioniert es ob es aber so auch richtig ist weiß ich nicht.
CODE $abfrageop = ("SELECT * FROM generallog ");


LG Brian
 
Auf die Art bekommst du alle Benutzer aus der Tabelle angezeigt.
Ob das richtig ist kommt darauf an ob die User aus der Tabelle gelöscht werden wenn sie eine gewisse Zeit lang inaktiv waren.

Ansonsten probier es mit
CODE
$akutellesDatum = getdate();
$abfrageop = ("SELECT * FROM generallog where ablauftime > $akutellesDatum ");



So bekommst du alle Nutzer deren Ablaufzeit noch in der Zukunft liegt.

Du musst dir halt erstmal klar werden woran du erkennst ob ein User noch online oder schon offline ist.

Das Beispiel ist im übrigen nicht unbedingt syntaktisch richtig da ich grade keine Testmöglichkeit habe aber ich hoffe der Sinn wird klar...
 
Hallo. mein System funktioniert so, ein User loggt sich ein und ist für 60 min gespeichert egal ob er 1min oder 59min Online ist. Nach 60min muss er sich wieder neu einloggen.

Demnach wird der User nach 60 min auch aus der Tabelle gelöscht.
Also denke ich mir, ist es doch das einfachste es so aus der Tabelle auszulesen oder?

LG Brian
 
Mich würde auch noch Intressieren wie ich es schaffe das mit genau angezeigt wird wieviele Leute gerade Online sind und wieviele davon Gäste sind.

LG Brian
 
Hey Brian

Habe das gerade gestern auch gemacht. Alles rasch selbst programmiert.
Und zwar wie folgt...

Habe eine neue Datenbank gemacht.
Dann bei jedem Seitenaufruf mache ich das:

//Schauen ob der User schon eingetragen ist anhand seiner IP

//Eintragen der Onlineuser falls der User noch nicht in der DB drin ist

//Löschen der User welche länger als 3 Minuten nicht mehr aktiv waren

Das sind die drei schritte und es funktioniert perfekt. habe dann auch noch
ergänzt, dass ich sehe auf welcher seite er gerade ist usw.

marco
 
Zurück
Oben