mmofacts.com

Alle user anzeigen??

gepostet vor 17 Jahre, 5 Monate von Nivek
Hallo ich habe ein Problem (schon wieder und es ist nicht das letzte^^) also ich möchte auf einer seite, das alle namen angezeigt werden die sich auf der seite befinden. ich habe eine tabelle in der datenbank gemacht wo es den username gibt. so wenn jetzt einer die seite betritt wird sein name dort gespeichert. Nun mein Problem: _Ich möchte einfach nur das er nun jeden usernamen anzeigt und mir ist keine lösung eingefallen. Vll werde ich mich ärgern wenn ich eure Vorschläge sehe, dass ich nicht selbst drauf gekommen bin^^
Also freue mich auf eure Vorschläge.
Wichtig: Entschuldigung das ich fast alles klein schreibe aber hab zu zeit nur eine hand die 2.te ist im verband also entschuldigung
gepostet vor 17 Jahre, 5 Monate von Dorgo
hallo,
wenn du ein login system hast dann speichere einfach nach dem login des users und nach seiner lätzten aktivität einen timestamp und wenn der älter als time() + 3min ist dann ist er nimma on.
Also immer beim login + klick auf deiner seite time() in die db speichern in verbindung zum user, dann einfach die user ausgeben wo die time zutrifft.
mfg,
Dorgo
gepostet vor 17 Jahre, 5 Monate von Nivek
edit2: ich weis nich wie ich alle usernames anzeigen lassen kann.
edit3:dann auch gleichmal das was ich bis jetzt habe zum anzeigen reicht das oder muss da noch mehr?
die 1.ste:
include "head.php";
?>
Du bist dabei die Arena zu betreten. Hiermit möchte ich dir sagen,
dass du bei einem gewonnenen Kampf 200 Ansehen und das 50 fache des
Lvls´ deines Gegners an Erfahrung bekommst.
Solltest du fliehen, verlierst du 200 Ansehen. Bei einer Niederlade 300 Ansehen,
bekommst aber noch das 10fache des Lvls´ deines Gegners an Erfahrung.
Also möchtest du die Arena betreten?




if(isset($_POST['eintreten'])){
mysql_query("INSERT INTO arena (username,zeit) VALUES('$username','time()')");
$query=mysql_fetch_object(mysql_query("SELECT username,id,zeit FROM arena where username='".$username."'"));
$zeit=$query->zeit;
$zeit_später=$zeit + 2;
if ($zeit <= $zeit_später) {
echo"";
}
else{

}
}
elseif(isset($_POST['verlassen'])){
echo"";
echo"";
echo"";
echo"";
echo"";
}
?>
include "footer.php";
?>
und die 2.te seite
include "head.php";
?>
$query=mysql_fetch_object(mysql_query("SELECT username FROM arena where username='".$username."'"));
echo" ";
echo" ".$query->username."";
echo" ";
?>
include "footer.php";
?>
reicht das oder was muss anders????
gepostet vor 17 Jahre, 5 Monate von Curzon564
if(isset($_POST['eintreten'])){
mysql_query("INSERT INTO arena (username,zeit) VALUES('$username','time()')");
$query=mysql_fetch_object(mysql_query("SELECT username,id,zeit FROM arena where username='".$username."'"));
$zeit=$query->zeit;
$zeit_später=$zeit + 2;
if ($zeit <= $zeit_später) {
echo"";
}

Du trägst time() und $username in die DB ein, direkt danach liest du es (inkl. id diesmal) wieder aus, wobei du id im restlichen Script nicht wieder verwendest.
Wozu dann überhaupt auslesen?
else{

}
Leere else Bedingungen machen kaum Sinn.
echo"";

echo"";
echo"";
echo"";
echo"";
Einmal echo und da alles rein ist effizienter. Davon ab solltest du dir überlegen ob du entweder für Ausgaben php jeweils beendest oder ob du echo/print verwendest. Dauernd dazwischen wechseln ist nicht so toll.
Zu deinem eigentlichen Problem:
Wenn du alle User auslesen willst, die in der DB sind würde das Query SELECT username FROM arena ORDER BY time desc; lauten. Dann würde es sämtliche Usernamen ausgeben, sortiert nach der letzten eingetragenen Zeit, absteigend. Wenn das ganze nur für einen bestimmten Zeitraum gelten soll...dann halt noch eine WHERE Bedingung wo du abfragst in welchem Zeitraum z.b. WHERE time>'".time()."'-3600
gepostet vor 17 Jahre, 5 Monate von TheUndeadable
Was mir sonst noch auffällt:
- Dein Code ist vollkommen offen für alle Arten von SQL- und XSS-Scripting-Attacken.
gepostet vor 17 Jahre, 5 Monate von Nivek
@urzon wegen der id,username und time , das ist angewohnheit, das ich vieles in der db speicher. und wegen der else, die ist nur nicht fertig^^.
@undeadable ich weis das ist eine dumme frage aber was sind das?? und wie kann ich es verhindern?? selbst wenn ich es wissen sollte ich weis es nich deshalb frag ich.
ansonsten danke
gepostet vor 17 Jahre, 5 Monate von Curzon564
@urzon wegen der id,username und time , das ist angewohnheit, das ich vieles in der db speicher.

Gewöhn es dir lieber ab.
Derartiges belastet, insbesondere bei höheren Userzahlen, den Server extrem. Mach ein SQL Query nur, wenn es auch wirklich sein muss.

Auf diese Diskussion antworten