Probleme mit matzh operatoren und mysql error

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit matzh operatoren und mysql error

    hallo,
    ich habe mir eine Funktion geschrieben, mirt der man virtuelles Forengeld aus einem virtuellen Konto abheben kann:
    PHP-Code:
    function geldauszahlen($auszahl)
    {
        
    $sql="UPDATE users
        SET bankgeld=bankgeld-'.
    $auszahl.'
        WHERE UserSession='"
    .session_id()."'";
    mysql_query($sql) or die (mysql_error());
        
    $sql="UPDATE users
        SET geld=geld+'.
    $auszahl.'
        WHERE UserSession='"
    .session_id()."'";
    $result=mysql_query($sql) or die (mysql_error());
    if(
    result=="true")
    {
    echo 
    "Das Geld wurde dir in dein Inventar ausgezahlt!";
    }
    else
    {
    echo 
    "Es gab einen Fehler bei der Transaktion! Bitte versuche es 

    erneut mit einer anderen Summe!"
    ;
    }

    und hierb das formular dazu:
    PHP-Code:
    <form action="bankabheben.php" method="post" > Wie viel Geld möchtest du abheben? <input name="auszahl" size="10"><input type="submit" value="Auszahlen!">
    <?
    if (isset($_POST["auszahl"]))
    {
    include_once("../sessionhelpers.inc.php");
    $auszahl=$_POST["auszahl"];
    geldauszahlen($auszahl);
    }


    ?>
    Und nun mein Prob:
    Mysql_error() gibt nichts aus. es kommt immer:
    Es gab einen Fehler bei der Transaktion! Bitte versuche es erneut mit einer anderen Summe!
    Was ist an meinen Scripten falsch?
    (wenn falscher bereich bitte verschieben)

  • #2
    hast du session_start() am Anfang der Datei stehen?!

    Kommentar


    • #3
      an der ersten datei ja(sessionhelpers.inc.php)
      und bei der zweiten hab ichs eingebaut
      aber: Gutgeschrieben wird nichts, aber 0,04 wurde abgezogen

      Kommentar


      • #4
        Beide Queries mal ausgeben. Wenn dir nichts auffällt: hier posten.

        Und warum machst du das ganze nicht in einer query???

        Kommentar


        • #5
          weil ich vergessen hab wie das geht.
          die ergebnisse editier ich hier rein.

          Kommentar


          • #6
            Zwei Queries kannst du? Eine nicht??? Sehr merkwürdig. Aber vielleicht frischt das Manual deine Erinnerung ein bisschen auf.

            Was ist denn nun mit der Ausgabe?

            Kommentar


            • #7
              die ausgabe ist beidesmal 1
              muss man für das mit einem query nicht mehrere variablen dahinschrweiben?

              Kommentar


              • #8
                die ausgabe ist beidesmal 1
                Du willst mir also sagen, dass du jeweils eine "1" an die Datenbank sendest??? Ich bat um eine Testausgabe der beiden Queries.

                muss man für das mit einem query nicht mehrere variablen dahinschrweiben?
                Du musst nicht mehr Variablen dahinschreiben als für zwei Queries. Falls das deine Frage ist. Falls nicht, dann einfach nochmal konkret fragen.

                Kommentar


                • #9
                  1: ich hab folgende codes genutzt:
                  PHP-Code:
                  function geldauszahlen($auszahl)
                  {
                      
                  $sql="UPDATE users
                      SET bankgeld=bankgeld-'.
                  $auszahl.'
                      WHERE UserSession='"
                  .session_id()."'";
                  $result=mysql_query($sql) or die (mysql_error());
                  echo 
                  $result;

                  }
                  #Und zweitens:
                  function geldauszahlen($auszahl)
                  {
                      
                  $sql="UPDATE users
                      SET bankgeld=bankgeld-'.
                  $auszahl.'
                      WHERE UserSession='"
                  .session_id()."'";
                  $result=mysql_query($sql) or die (mysql_error());
                      
                  $sql="UPDATE users
                      SET geld=geld+'.
                  $auszahl.'
                      WHERE UserSession='"
                  .session_id()."'";
                  $result=mysql_query($sql) or die (mysql_error());
                  echo 
                  $result
                  2.ich dachte an
                  PHP-Code:
                  mysql_query($sql1,$sql2); 
                  war das richtig?

                  Kommentar


                  • #10
                    1: ich hab folgende codes genutzt:
                    Und das, obwohl ich darum gebeten hatte, dass du die Queries (die du an die Datenbank sendenst) ausgibst. Mehr dazu steht auch in den Regeln.

                    ich dachte an mysql_query($sql1,$sql2); war das richtig?
                    ein blick auf mysql_query klärt dich auf.

                    Kommentar


                    • #11
                      jetzt geht es plötzlich mit folgendem code:
                      PHP-Code:
                      function geldauszahlen($auszahl)
                      {
                          
                      $sql="UPDATE users
                          SET bankgeld=bankgeld-'.
                      $auszahl.'
                          WHERE UserSession='"
                      .session_id()."'";
                      $result=mysql_query($sql) or die (mysql_error());
                          
                      $sql="UPDATE users
                          SET geld=geld+'.
                      $auszahl.'
                          WHERE UserSession='"
                      .session_id()."'";
                      $result=mysql_query($sql) or die (mysql_error());
                      if(
                      $result=="true")
                      {
                      echo 
                      "Das Geld wurde dir in dein Inventar ausgezahlt!";
                      }
                      else
                      {
                      echo 
                      "Es gab einen Fehler bei der Transaktion! Bitte versuche es erneut mit einer anderen Summe!";
                      }


                      aber es wird immer nur ein betrag NACH dem komma abgezogen.
                      zb: Ich wollte 30$ abheben, es wurden aber 0,3$ abgehoben. was muss dagegen machen?

                      edit: sry für dioppelpost

                      Kommentar


                      • #12
                        jetzt geht es plötzlich mit folgendem code:
                        Genial, du programmierst echt nach Zufall, oder?

                        zb: Ich wollte 30$ abheben, es wurden aber 0,3$ abgehoben. was muss dagegen machen?
                        Mal langsam mit den geforderten Testausgaben rüberkommen!

                        edit: sry für dioppelpost
                        War ja keins.

                        Kommentar


                        • #13
                          achso. du meintets das ich die $sql ausgebe. jetzt verstehe ichs
                          aushgaben:
                          UPDATE users SET bankgeld=bankgeld-'.30.' WHERE UserSession='8b1b1cc9b887658c76f3b37ee3188594'

                          und

                          UPDATE users SET geld=geld+'.30.' WHERE UserSession='8b1b1cc9b887658c76f3b37ee3188594'

                          abre es geht ja jetzt, es wird nur zu WENIG abgezogen und hinzugefügt.

                          stimmt. egal
                          Zuletzt geändert von Champ Wasili; 15.06.2008, 17:06.

                          Kommentar


                          • #14


                            EDIT:
                            Und warum setzt du die 30 in Anführungszeichen und Punkte??? bei 0.30 sollte es dich nicht wundern, dass nur 30ct abgezogen werden.
                            Zuletzt geändert von TobiaZ; 15.06.2008, 17:08.

                            Kommentar


                            • #15
                              ich hab anchgeguckt mit den zwei querys in einem:
                              PHP-Code:
                                  $sql="UPDATE users
                                  SET bankgeld=bankgeld-'.
                              $auszahl.',geld=geld+'.$auszahl.'
                                  WHERE UserSession='"
                              .session_id()."'";
                              $result=mysql_query($sql) or die (mysql_error()); 
                              richtig?
                              und warum wird immer zuwenig abgezogen?

                              Kommentar

                              Lädt...
                              X