Hallo meine Damen und Herren,
ich hab folgendes versucht einen Datenbank-Update durchzuführen mittels XAJAX und PHP das klappt auch ganz gut allerdings muss sich irgendwo in meinem Script in den ersten beiden Funktionen ein Fehler befinden, denn wenn ich das Script ausführe lässt sich der Wert der ersten Funktion nur einmal um 1000 Punkte erhöhen, und der Wert in der zweiten Funktion springt sporadisch zurück zu 1050 Punkten.
Hier der Quellcode:
Das Problem ist das die Werte von $dataArray['experience'] und $dataArray['level'] nicht ordnungsgemäß in die Datenbank geschrieben werden. Der erste Wert lässt sich immer nur einmal erhöhen und wird garnicht in die DB geschrieben, und der zweite Wert spring manchmal auf 1050 Punkt obwohl sich dieser Wert normalerweise garnicht erreichen lässt.
Die Variable $userName wird ordnungsgemäß übergeben das habe ich überprüft und die letzten beiden Funktionen funktionieren ja tadellos!
Also muss ich irgendwo irgendwas vergessen haben aber ich finde den Fehler nicht alleine.
ich hab folgendes versucht einen Datenbank-Update durchzuführen mittels XAJAX und PHP das klappt auch ganz gut allerdings muss sich irgendwo in meinem Script in den ersten beiden Funktionen ein Fehler befinden, denn wenn ich das Script ausführe lässt sich der Wert der ersten Funktion nur einmal um 1000 Punkte erhöhen, und der Wert in der zweiten Funktion springt sporadisch zurück zu 1050 Punkten.
Hier der Quellcode:
PHP Code:
<?php
if(isset($_GET["SID"])) session_id($_GET["SID"]);
session_start();
require_once("xajax_core/xajax.inc.php");
$xajax = new xajax();
$xajax->registerFunction("addExpStat");
$xajax->registerFunction("addLevelStat");
$xajax->registerFunction("addAttStat");
$xajax->registerFunction("addDefStat");
$dataArray = array();
function addExpStat($userName)
{
$sqlget = "SELECT * FROM user WHERE name='".$userName."'";
$mysql1 = mysql_connect("localhost", "*", "*");
if (!$mysql1)
{
echo "MySQL connect Problem (1.).<br>";
}
$mysql2 = mysql_select_db("benutzer", $mysql1);
if (!$mysql2)
{
echo "MySQL select db Problem (2.).<br>";
}
$mysql3 = mysql_query($sqlget);
if (!$mysql3)
{
echo "MySQL query select Problem (3.).<br>";
}
$row = mysql_fetch_object($mysql3);
$dataArray['experience'] = $row->experience +1000;
$sqlc1 = "UPDATE user SET level = '".$dataArray['experience']."' WHERE name = '".$userName."'";
$e = mysql_query($sqlc1);
if (!$e)
{
echo "MySQL Problem:UPDATE LEVEL.<br>";
}
$ex = "Neuer Erfahrungswert: ".$dataArray['experience'];
$objResponse = new xajaxResponse();
$objResponse->assign("EX","innerHTML", $ex);
return $objResponse;
}
function addLevelStat($userName)
{
$sqlget = "SELECT * FROM user WHERE name='".$userName."'";
$mysql1 = mysql_connect("localhost", "*", "*");
if (!$mysql1)
{
echo "MySQL connect Problem (1.).<br>";
}
$mysql2 = mysql_select_db("benutzer", $mysql1);
if (!$mysql2)
{
echo "MySQL select db Problem (2.).<br>";
}
$mysql3 = mysql_query($sqlget);
if (!$mysql3)
{
echo "MySQL query select Problem (3.).<br>";
}
$row = mysql_fetch_object($mysql3);
$dataArray['level'] = $row->level +15;
$sqlc2 = "UPDATE user SET level = '".$dataArray['level']."' WHERE name = '".$userName."'";
$f = mysql_query($sqlc2);
if (!$f)
{
echo "MySQL Problem:UPDATE LEVEL.<br>";
}
$le = "Neues Level: ".$dataArray['level'];
$objResponse = new xajaxResponse();
$objResponse->assign("LE","innerHTML", $le);
return $objResponse;
}
function addAttStat($userName)
{
$sqlget = "SELECT * FROM user WHERE name='".$userName."'";
$mysql1 = mysql_connect("localhost", "*", "*");
if (!$mysql1)
{
echo "MySQL connect Problem (1.).<br>";
}
$mysql2 = mysql_select_db("benutzer", $mysql1);
if (!$mysql2)
{
echo "MySQL select db Problem (2.).<br>";
}
$mysql3 = mysql_query($sqlget);
if (!$mysql3)
{
echo "MySQL query select Problem (3.).<br>";
}
$row = mysql_fetch_object($mysql3);
$dataArray['angriff'] = $row->angriff +15000;
$sqlc3 = "UPDATE user SET angriff = '".$dataArray['angriff']."' WHERE name = '".$userName."'";
$g = mysql_query($sqlc3);
if (!$g)
{
echo "MySQL Problem:UPDATE ATTACK.<br>";
}
$at = "Neuer Angriffswert: ".$dataArray['angriff'];
$objResponse = new xajaxResponse();
$objResponse->assign("AT","innerHTML", $at);
return $objResponse;
}
function addDefStat($userName)
{
$sqlget = "SELECT * FROM user WHERE name='".$userName."'";
$mysql1 = mysql_connect("localhost", "*", "*");
if (!$mysql1)
{
echo "MySQL connect Problem (1.).<br>";
}
$mysql2 = mysql_select_db("benutzer", $mysql1);
if (!$mysql2)
{
echo "MySQL select db Problem (2.).<br>";
}
$mysql3 = mysql_query($sqlget);
if (!$mysql3)
{
echo "MySQL query select Problem (3.).<br>";
}
$row = mysql_fetch_object($mysql3);
$dataArray['defense'] = $row->defense +16000;
$sqlc4 = "UPDATE user SET defense = '".$dataArray['defense']."' WHERE name = '".$userName."'";
$h = mysql_query($sqlc4);
if (!$h)
{
echo "MySQL Problem:UPDATE DEFENSE.<br>";
}
$de = "Neue Verteidigungskraft: ".$dataArray['defense'];
$objResponse = new xajaxResponse();
$objResponse->assign("DE","innerHTML", $de);
return $objResponse;
}
$xajax->processRequest();
?>
<html>
<head>
<script type="text/javascript" charset="UTF-8">
<?php $xajax->printJavascript(); ?>
</script>
</head>
<table>
<tr><td><div id="EX"><?php echo "Aktueller Erfahrungswert: ".$_SESSION['experience']; ?><div></td><td><input type="submit" value="Erfahrung trainieren!" onclick="xajax_addExpStat('<?php echo $_SESSION['user']; ?>');"></td></tr>
<tr><td><div id="LE"><?php echo "Aktuelles Level: ".$_SESSION['level']; ?></div></td><td><input type="submit" value="Level trainieren!" onclick="xajax_addLevelStat('<?php echo $_SESSION['user']; ?>');"></td></tr>
<tr><td><div id="AT"><?php echo "Aktuelle Angriffskraft: ".$_SESSION['attackpower']; ?></div></td><td><input type="submit" value="Angriff trainieren!" onclick="xajax_addAttStat('<?php echo $_SESSION['user']; ?>');"></td></tr>
<tr><td><div id="DE"><?php echo "Aktuelle Verteidigungskraft: ".$_SESSION['defensepower']; ?></div></td><td><input type="submit" value="Verteidigung trainieren!" onclick="xajax_addDefStat('<?php echo $_SESSION['user']; ?>');"></td></tr>
</table>
</html>
Die Variable $userName wird ordnungsgemäß übergeben das habe ich überprüft und die letzten beiden Funktionen funktionieren ja tadellos!
Also muss ich irgendwo irgendwas vergessen haben aber ich finde den Fehler nicht alleine.
Comment