Announcement

Collapse
No announcement yet.

Mit XAJAX und PHP Datenbank-Update

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mit XAJAX und PHP Datenbank-Update

    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:

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

  • #2
    Du updatest in den ersten beiden Funktionen 2-mal die Spalte Level, das ist vermutlich der Fehler.

    kind regards
    Jimmy

    Comment

    Working...
    X