Online Status

Hab da noch mal eine Frage. Also ich habe meine Datenbank erweitert mit dem Feld “Status”. Jetzt möchte ich, dass wenn man sich eingeloggt hat in das Feld “Online” eingetragen wird und wenn man sich ausloggt das Feld frei wird also der Inhalt gelöscht wird. Hab gehört, dass man das mit INSERT INTO und DELETE oder mit UPDATE machen kann, hab aber noch keine Ahnung wie…

Thx im Voraus

o.0

z.B. sowas:

UPDATE `tabelle` Set `status` = 'online' WHERE `id` = $id

bzw:

UPDATE `tabelle` Set `status` = 'offline' WHERE `id` = $id

Du musst aber dabei auch beachten, dass sich nicht JEDER ausloggt, es gibt viele, die die Seite dann einfach verlassen wenn sie fertig sind,

deshalb solltest du unbedingt auch die zeit speichern und jeweils überprüfen, ob die betreffende zeit schon x (zb 5 min) zurückliegt…

mfg Joey

Wie mach ich das den dann in PHP ? achso und soll ich dann die zeit speichern wann als letztes was gemacht wurde und nach einer stunde automatisch ausloggen?

Mit

$sql = "UPDATE ...";
$result = mysql_query($sgl); 

Würde sich empfehlen :wink:

Das hab ich jetzt nicht gecheckt. Kann mir jemand ein php-script schicken, wo der die sql-befehl direkt an die datenbank gesendet wird?

Hast du bisher mit PHP schon eine Verbindung zu deiner Datenbank aufgebaut? Oder wie hast du sie sonst gefüllt?

Wie man eine Verbindung zur Datenbank aufbaut wird hier erklärt: at2.php.net/manual/de/function.mysql-connect.php

Und dann den Query so wie ich oben geschrieben habe senden :wink:

Sorry, ich hab jetzt den Code hier gebastelt, aber in der Datenbank kommt nichts an.

[code]<?php
$connectionid = mysql_connect (“localhost”, “zoola”, “passwort”);
if (!mysql_select_db (“zoola”, $connectionid))
{
die (“Es liegt ein Fehler in der Datenbank vor. Es kann sein, das sie nicht als online angezeigt werden. Bitte loggen sie sich erneut ein oder wenden sie sich an den Administrator!”);
}

$sql = "UPDATE user Set status = ‘online’ WHERE id = <?php echo $_SESSION["user_id"]; ?>";
$result = mysql_query($sql);

?>[/code]

Hab ich da was falsch gemacht?

Ja, du kannst keine echo befehle in querys verwenden :wink:

dazu musst du die variable mit einem . anhängen :wink:

mfg Joey

Das heißt jetzt? Sorry ich hab nicht so viel Ahnung im Gebiet php. Eigentlich eher HTML und css. Aber für meine Community die ich da zusammen bastel eignet sich php halt perfekt. Hoffe mal du hast Verständnis…


Wenn du 2 Strings zusammenhängst eben so mit einem Punkt.
Echo nur dann, wenn du etwas ausgeben willst, was dann auch im Quelltext zu sehen ist.

Wenn du 2 Strings zusammenhängst eben so mit einem Punkt.
Echo nur dann, wenn du etwas ausgeben willst, was dann auch im Quelltext zu sehen ist.

Jetzt erhalte ich aber diese Fehlermeldung: Parse error: syntax error, unexpected T_STRING in /users/zoola/www/index.php on line 11

Den Quelltext hab ich ja oben gepostet mit dieser kleinen Veränderung.

Hab ich etwa noch ein Fehler im Quelltext?

tut.php-quake.net/
mal in den fred werf

:wink:

Hallo,

jetzt müsste man wissen welche Zeile das ist…
Wenn wen es die “Updatezeile” ist, dann versuch mal
$sql = sprintf(“Update user SET status = ‘online’ WHERE id %d”, $_SESSION[‘user_id’]);

MfG
GD

Ich hab es jetzt hinbekommen, mein Code:

[code]

<?php $dbh = mysql_connect("localhost", "zoola", "passwort"); mysql_select_db("zoola",$dbh); $SqlQuery = " UPDATE user SET status = 'online' WHERE id = " . $_SESSION["user_id"]; $result = mysql_query ( $SqlQuery,$dbh); ?>[/code]

Danke trotzdem an alle ^^

Ich kenne mich mit MYSQL sehr wenig aus und könnte mir einer für das Script bitte die SQL Auführung geben?