WER ist gerade online anzeige

Danke für deine Antwort.
Der Fehler ist leider der selbe.

In die Datenbank wird übringens folgendes in die Spalte "time" eingetragen:
Code:
2009-07-29 00:46:54

ich weiß nicht genau ob das so passt.

Habt ihr noch eine Idee, was ich ausprobieren könnte?
Das kann doch nicht sein, dass mich so ein Fehler jetzt daran hindert.
 
Könntest du vielleicht mal die Datenbank-Tabellen-Struktur zeigen?

Das mit der Spalte von time passt schon, das ist richtig so. Du kannst es ja nach Belieben in PHP dann umformatieren, falls dich das jetzt daran stört.

Es müsste wie gesagt eine Spalte sein, die nicht exisitert, aber im Query steht. Es liegt eigentlich nicht am "AS min <= 10", aber das so zu schreiben wie Dr Dau schon meinte, ist ratsam.
Du könntest das ganze "<= 10" auch weglassen zu deinen Testzwecken und dann im PHP selbst mit
PHP:
if ($user[min] <= 10) { ...
abfragen.

LG,

Lisa
 
Nein, sondern die Abfrage selbst, die du im PHP Code zu stehen hast, stimmt wahrscheinlich nicht überein mit den tatsächlich existenten Spaltennamen. Wie gesagt, könnte man dir besser helfen, wenn du die Tabellen-Struktur und deinen aktuellen PHP Code dazu (falls du ihn nun irgendwie nach deinem letzten Beitrag verändert hast) zeigen würdest.

LG,

Lisa
 
Kompletter PHP Code:


PHP:
<?php


include("mysql.php");

if (!empty($_SESSION['user_id']))   {

mysql_query("UPDATE `benutzerdaten` SET time=NOW() WHERE Id='".$_SESSION['user_id']."'");

}

$result = mysql_query("SELECT `Nickname` FROM `benutzerdaten` WHERE TIMESTAMPDIFF(MINUTE ,`time` ,NOW()) AS `min` <= 10");

while ($user= mysql_fetch_array($result) or die(mysql_error())) {

echo "".$user['Nickname'].": Letzte Aktivität vor ".$user['time']." Minute(n).";

} 

?>

Tabellenstruktur:

Screenshot

(Die Tabelle heißt "benutzerdaten")

Ich hoffe das hilft.
 
Never ever Klatsch nur the code ins Forum or I will put you in a Gulli, do the Deckel druf and you will never come back to the Tageslicht. : P

Also ich finde deinen Query sehr komisch. Er scheint von Fehlern gefüllt zu sein.
SELECT `Nickname` FROM `benutzerdaten` WHERE TIMESTAMPDIFF(MINUTE ,`time` ,NOW()) AS `min` <= 10

Übersetzt:
Wähle Spitzname aus den Benutzerdaten, bei dem die Zeitdifferenz als 'min' kleiner gleich zehn ist.

Vielleicht reicht dies:
Wähle Spitzname aus den Benutzerdaten, bei dem die Zeitdifferenz kleiner gleich zehn ist.

Versuch it. ;)
 
Versuch deinen PHP Code mal mit diesen zu ersetzen:

PHP:
<?php

include("mysql.php");

if (!empty($_SESSION['user_id']))   {

mysql_query("UPDATE `benutzerdaten` SET time=NOW() WHERE Id='".$_SESSION['user_id']."'");

}

$result = mysql_query("SELECT `Nickname` FROM `benutzerdaten` WHERE TIMESTAMPDIFF(MINUTE,`time`,NOW()) AS `min` <= '10'");
while ($user = mysql_fetch_array($result) or die mysql_error()) {

echo "".$user['Nickname'].": Letzte Aktivität vor ".$user['time']." Minute(n).";

} 

?>

Du hattest nach dem mysql_error eine Klammer zu viel. Wenn es jetzt immer noch nicht klappt, dann könnte evtl nur noch die Tabelle `benutzerdaten` vielleicht groß geschrieben sein. Sonst sieht das eigentlich ganz gut aus, finde ich.

LG,

Lisa
 
Meiner Meiung nach ist die Klammer nach mysql_error nicht zu viel.

Die funktion "die" verlangt als Parameter doch das, was ausgeführt werden soll.
Nämlich der mysql Error soll ausgegeben werden.

PHP:
die(mysql_error() )

Es funktioniert aber in beiden fällen nicht.
Bei deiner version kommt:
Code:
Parse error: syntax error, unexpected T_STRING in bla/useronline.php on line 12

was auch verständlich ist.

Ich verstehe es nicht.
"benutzerdaten" ist auch definitiv nicht groß geschrieben.
:confused:
 
Und was passiert, wenn du
PHP:
or die mysql_error() )
schreibst, ohne die Klammer nach dem "or die"?

Oder versuch es mal damit:

PHP:
<?php

include("mysql.php");

if (!empty($_SESSION['user_id']))   {

mysql_query("UPDATE `benutzerdaten` SET time=NOW() WHERE Id='".$_SESSION['user_id']."'");

}

$result = mysql_query("SELECT `Nickname` FROM `benutzerdaten` WHERE TIMESTAMPDIFF(MINUTE,`time`,NOW()) AS `m`");

while ($user = mysql_fetch_array($result)) {

if ($user[m] > 10){ echo "$user[Nickname] ist offline (zuletzt aktiv vor ".$user[m]."min)"; }
else { echo "$user[Nickname] ist <u>online</u> (zuletzt aktiv vor ".$user[m]."min)"; }

} 

?>
 
Zurück