Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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?

Geschrieben

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.

Geschrieben
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.

Geschrieben

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...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...