Hi,
weil mir hier nun schon 2 mal sehr gute geholfen wurde, hoffe ich, das es auch nochmal klappt.
Derzeit habe ich ein großes Problem mit meinen Programm. Ich bin drüber ein Browsergame zu programmieren. Nun bin ich bei einem der schwersten Teile des Programms. Ich erkläre es am besten an einem Beispiel:
Du besitzt ein Insel und möchtest jemanden angreifen. Du schickst eine Flotte von 10 Schiffen los. Das Script liest aus der Datenbank "inseln" aus, ob sie die 10 Schiffe hat, wenn ja:
- updatet er die Insel und zieht 10 Schiffe ab und
- schreibt in die Datenbank "Flotte" einen neuen Datensatz *greife Insel x an mit 10 Schiffen*
Nun habe ich das Problem, das einige folgendes schaffen:
Sie senden den Auftrag, und spamen F5 zum refreshen.
Aufruf 1 läd die Inseldaten und sieht das zb. 10 Schiffe da sind, doch bevor er die 10 Schiffe per update in der mysql Datenbank abziehen kann läd die Seite von Aufruf 2 schon die unupgedateten Inseldaten aus und meint: Ja sind 10 Schiffe drauf, lassen wir das Script weiter laufen. Währenddessen schickt Aufruf 1 die Flotte los und Aufruf 2 eben so.
Heißt es wurden 2x10 Schiffe abgeschickt, aber nur 10 bezahlt. Kam das Verständlich rüber?
Nun die Frage was ich machen kann. Ich hab schon bisschen was probiert.
ignore_user_abort(true); hilft nicht
Die Insel wird auch geupdatet, bevor die Flotte losgeschickt wird.
Sogar eine Zeile vor dem Update und den Flotteneintrag habe ich gecheckt ob die Insel noch die gleichen Daten hat wie zum Anfang des Scriptes.. es hilft alles nichts
Ich muss dazu sagen, dass das Programm bisher noch auf einen Webspace liegt und wie demnächst wohl auf einen Umziehen wo wir etwas mehr Geschwindigkeit erwarten können, dennoch muss es doch eine Möglichkeit geben, das es auch so funktioniert, hätte vlt. jemand eine Idee, wäre euch sehr Dankbar.
mfg Gali
weil mir hier nun schon 2 mal sehr gute geholfen wurde, hoffe ich, das es auch nochmal klappt.
Derzeit habe ich ein großes Problem mit meinen Programm. Ich bin drüber ein Browsergame zu programmieren. Nun bin ich bei einem der schwersten Teile des Programms. Ich erkläre es am besten an einem Beispiel:
Du besitzt ein Insel und möchtest jemanden angreifen. Du schickst eine Flotte von 10 Schiffen los. Das Script liest aus der Datenbank "inseln" aus, ob sie die 10 Schiffe hat, wenn ja:
- updatet er die Insel und zieht 10 Schiffe ab und
- schreibt in die Datenbank "Flotte" einen neuen Datensatz *greife Insel x an mit 10 Schiffen*
Nun habe ich das Problem, das einige folgendes schaffen:
Sie senden den Auftrag, und spamen F5 zum refreshen.
Aufruf 1 läd die Inseldaten und sieht das zb. 10 Schiffe da sind, doch bevor er die 10 Schiffe per update in der mysql Datenbank abziehen kann läd die Seite von Aufruf 2 schon die unupgedateten Inseldaten aus und meint: Ja sind 10 Schiffe drauf, lassen wir das Script weiter laufen. Währenddessen schickt Aufruf 1 die Flotte los und Aufruf 2 eben so.
Heißt es wurden 2x10 Schiffe abgeschickt, aber nur 10 bezahlt. Kam das Verständlich rüber?
Nun die Frage was ich machen kann. Ich hab schon bisschen was probiert.
ignore_user_abort(true); hilft nicht
Die Insel wird auch geupdatet, bevor die Flotte losgeschickt wird.
Sogar eine Zeile vor dem Update und den Flotteneintrag habe ich gecheckt ob die Insel noch die gleichen Daten hat wie zum Anfang des Scriptes.. es hilft alles nichts
Ich muss dazu sagen, dass das Programm bisher noch auf einen Webspace liegt und wie demnächst wohl auf einen Umziehen wo wir etwas mehr Geschwindigkeit erwarten können, dennoch muss es doch eine Möglichkeit geben, das es auch so funktioniert, hätte vlt. jemand eine Idee, wäre euch sehr Dankbar.
mfg Gali
Zuletzt bearbeitet: