Nimmo Gogh Geschrieben 11. Juli 2010 Geschrieben 11. Juli 2010 Hey Leute. Ich habe eine Funktion auf meiner Webseite, die den Wert einer Variable alle 30 Sekunden um 1 erhöhen soll und ihn dann in eine mysql Datenbank einträgt. Diese Funktion soll aber im Hintergrund laufen, sodass die Seite nicht ständig geladen wird, sondern das ganze im Hintergrund passiert. Ich habe es schon mit einer While schleife Probiert $time= time(); $dauer = $time+30 while(1<2){ $time=time(); if($time==$dauer) {$e=1;$h=1;$s=1; $update = mysql_query("UPDATE login Set E = '$e' WHERE Nummer = '16'"); $update = mysql_query("UPDATE login SET H = '$h' WHERE Nummmer = '16'"); $update = mysql_query("UPDATE login SET St = '$s' WHERE Nummer = '16'"); $dauer+5; } Nimmo Zitieren
Bubble Geschrieben 11. Juli 2010 Geschrieben 11. Juli 2010 Wenn etwas ständig im Hintergrund laufen soll, dann muss es im Hintergrund ständig ausgeführt werden, unabhängig von Web-Server-Anfragen. Allerdings sehe ich keinen besonderen Sinn darin, alle x-Sekunden eine Zahl um 1 zu erhöhen und die aktualisierte Zahl dann ständig in eine Datenbank einzutragen, da man das Ergebnis zu jedem Zeitpunkt bei gegebenem Startwert und gegebener Periodendauer direkt ausrechnen kann und das mit weniger Aufwand, als ihn die Datenbankzugriffe erfordern. Zitieren
T3D Geschrieben 11. Juli 2010 Geschrieben 11. Juli 2010 while(1<2){ while(true) tuts auch $update = mysql_query("UPDATE login Set E = '$e' WHERE Nummer = '16'"); $update = mysql_query("UPDATE login SET H = '$h' WHERE Nummmer = '16'"); $update = mysql_query("UPDATE login SET St = '$s' WHERE Nummer = '16'"); du greifst 3x auf den gleichendatensatz zu in 3 unterschiedlichen SQL`s warum machst du sowas? ------ aber ma was ganz anderes... 1. es kann passieren das das script sonst nichts weiter anzeigt, da manche browser erst etwas anzeigen wenn die seite vollstaendig geladen is (tut sie bei dir aber nie).. es seidenn man arbeitet mit ob_flush 2. genauso kann es passieren das der user mitten in der "update" anweisung nun das fenster schliest oder auf einen anderen link klickt und dann hast du einene halbfertige funktion solltest das ganze noch einmal genau ueberdenken was du da tust Ted Zitieren
Nimmo Gogh Geschrieben 11. Juli 2010 Autor Geschrieben 11. Juli 2010 Es ist so, dass sobald der user sich anmeldet ständig, bis zum logout, die Zahl weiterlaufen soll. Egal auf welche Links er sonst noch drückt. Kann ich es nicht in einer externen Datei abspeichern und diese dann bei jedem seitenaufruf mit der Include-Anweisung mit Einfügen? Oder ist PHP für das Problem gänzlich ungeeignet? Zitieren
flashpixx Geschrieben 11. Juli 2010 Geschrieben 11. Juli 2010 Was willst Du damit überhaupt bezwecken? Wenn ein PHP Script abgearbeitet wurde, dann stoppt der Interpreter, ebenso ist auf den Servern die maximale Execution Time, die ein PHP Script laufen darf, gesetzt. Wenn das Script länger als die durch den Admin eingestellt Zeit läuft, wird es automatisch beendet. Außerdem wäre die Last, die ein solches Script bei mehreren 1000 Userzugriffen erzeugt, so hoch, dass es sich sicherlich auf die Performance auswirken würde. Es ist so, dass sobald der user sich anmeldet ständig, bis zum logout, die Zahl weiterlaufen soll. Das ist völlig sinnlos und auch falsch, HTML ist ein zustandsloses Protokoll, d.h. Du bekommst nicht mit, ob sich ein User auf einer Deiner oder anderen Seite befindet. Zitieren
Bubble Geschrieben 11. Juli 2010 Geschrieben 11. Juli 2010 Es ist so, dass sobald der user sich anmeldet ständig, bis zum logout, die Zahl weiterlaufen soll. Egal auf welche Links er sonst noch drückt. Aha. Und warum berechnest Du nicht einfach die Zahl, die der Zähler zu einem Zeitpunkt gehabt hätte, sobald sie benötigt wird? Den Anmeldezeitpunkt kennst Du ja. Zitieren
Nimmo Gogh Geschrieben 11. Juli 2010 Autor Geschrieben 11. Juli 2010 Die Idee ist eigentlich Genial. Ich werde per Js eine Zahl laufen lassen, damit der User immer sieht, wie viel "Punte" er hat, und erst sobald er sie einsetzt rechte ich aus wie viel er zu diesem Zeitpunkt eigentlich haben sollte. Aber da gibt es bestimmt doch auch noch einen sichereren weg. Das ganze ist eine Geschäftshompage, also darf ich mir einen Datenverlust beim Absturz der Seite eigentlich nicht erlauben. Deswegen wäre es mir schon ganz lieb, wenn ich den Wert auch immer gleich in eine Datenbank schreiben könnte... Zitieren
Nimmo Gogh Geschrieben 11. Juli 2010 Autor Geschrieben 11. Juli 2010 Mit PHP sessions arbeite ich sowieso, das wäre genial! Aber wie genau soll ich das dann machen? Mit einer while schleife? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.