Hallo.
Ich habe da ein Problem mit PHP und MYSQL.
Wenn ich in einer PHP-Datei auf die MQSQL-Datenbank zugreife, Werte auslesen lasse, einige kleine Berechnungen durchführen lasse, und dann einige dieser Werte wieder neu abspeichern möchte (Werte ersetzen), gibt es Probleme, wenn man nach dem Aufruf dieser PHP-Seite im Browser auf Refresh klickt.
Der soeben neu abgespeicherte Wert wird erneut aus der Datenbank herausgelesen und nochmals neu bearbeitet.
Wenn man dieses mehrmals wiederholt, kann man so einige der eingetragenen Werte bis ins unermessliche steigern.
MEINE FRAGE: Besteht da eine Möglichkeit, der Software mitzuteilen, dass nach einem Refresh der Seite im Browser kein neues Datenbankupdate durchgeführt werden soll?
Dieses sollte vielleicht auch nur auf einen bestimmten Bereich der PHP-Seite einsetzbar sein.
Bei meiner Sache handelt es sich um ein Rollenspielsystem auf meinem Board. Da werden die Statuswerte des Charakters auf einer Seite abgerufen. Bei einem Levelaufstieg soll der Rechner automatisch die Grundwerte des Helden vornehmen. Das geht auch, nur drückt man dann noch auf refresh, dann verdoppeln sich die hinzugewonnenen Statuswerte. Son Mist.
Bitte helft mir.
Danke
Gruß
BxBender
(http://www.bxbender.space-4you.com/wbboard/portal.php)
(alexandermertz@web.de)
Hier ein Auszug vom Code (sind sonst ein paar Seiten):
$levelmodifier = $db_zugriff->query_first("SELECT hpmodifier, mamodifier, ppmodifier (<--- die Multiplikatoren für den Aufstieg der Statuswerte ---) FROM battle_options");
$opponentlevel = getlevel($oppstats[xp], $battleopt[exprate]);
$opponentmaxhp = $levelmodifier[hpmodifier] * $opponentlevel;
$opponentmaxma = $levelmodifier[mamodifier] * $opponentlevel;
$opponentmaxpp = $levelmodifier[ppmodifier] * $opponentlevel;
$opponentlevelmaxhp = $opponentmaxhp + $oppstats[maxhp] (<--- die aktuellen Statuswerte des Helden ---) ;
$opponentlevelmaxma = $opponentmaxma + $oppstats[maxma];
$opponentlevelmaxpp = $opponentmaxpp + $oppstats[maxpp];
$db_zugriff->query("UPDATE bb".$n."_user_table SET maxhp='$opponentlevelmaxhp', maxma='$opponentlevelmaxma', maxpp='$opponentlevelmaxpp' (<--- die Werte, die vorher ausgelesen wurden und nun nach Durchkalkulierung der Levelbonuses überschrieben werden ---) WHERE userid='$battle[opponentid]'");