update: unbekannte werte mit variablen

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

  • update: unbekannte werte mit variablen

    Hallo Kollegen,
    wieder mal ist bei mir ein Problem aufgetreten es geht um ein mysql update.

    Mein Skript:

    PHP-Code:
    <?php
    function mysql_update_spieler_training($eigenschaft) {

    $linkmysql_warrior_connect();

    $sql "update spieler set '" $eigenschaft "   = '" $eigenschaft+"',
    trainingspunkte = trainingspunkte-1
    where nr = " 
    $_SESSION['spielernr'];

    $result mysql_query($sql);
    if (!
    $result) {
    echo 
    "Fehler bei funktion: mysql_update_spieler_training " mysql_error();
    }

    mysql_warrior_disconnect_link($link);
    return ;
    }
    ?>
    Mir geht es um die Variable "$eigenschaft " ist so etwas möglich?
    Der Wert der verändert werden soll kann unterschiedlich sein.

    Im Klartext: Es gibt immer nur ein Wert der verändert wird, aber dieser Wert ist wie gesagt unterschiedlich.

    Deshalb wäre es gut wenn man das mit einer Variable machen könnte.

  • #2
    as geht schon aber dein Beispiel müsste eigentlich einen syntaxfehler im mysql hervorrufen.
    denn Deine hochkomma setzung ist falsch
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Ja stimmt richtig erkannt das ergibt auch ein Fehler aber, wie kann ich das richtig machen?

      Kommentar


      • #4
        Probier folgendes:

        PHP-Code:
        $sql "update spieler set 
                      `" 
        $eigenschaft "`   = `'" $eigenschaft "`+1,
                      `trainingspunkte`        = `trainingspunkte`-1
                         where nr = " 
        .$_SESSION['spielernr']; 

        Kommentar


        • #5
          Das klappt nicht der sagt dann folgendes:

          Unknown column '' in 'field list'

          naja geht das überhaupt mit diesen Zeichen: `
          Also ich kenne nur ' und ".

          Aber keine Ahnung

          Kommentar


          • #6
            also so genannte backticks (`) brauchst du nur bei spaltennamen, die gleichzeitig ein schlüsselwort sind. und da du nur mit ganzzahlen arbeitest, reicht das hier völlig aus:
            PHP-Code:
              $sql 'update 
                        spieler 
                      set 
                        '
            .$eigenschaft.' = '.$eigenschaft.' + 1,
                        trainingspunkte = trainingspunkte - 1
                      where 
                        nr = '
            .$_SESSION['spielernr']; 
            stellt sich nur die frage, woher $eigenschaft kommt.

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Original geschrieben von
              Kropff

              stellt sich nur die frage, woher $eigenschaft kommt.

              peter

              Siehe oben die Variable wird in die funktion übergeben.
              Habe dein code mal übernommen geht aber leider auch nicht.

              Fehler:
              PHP-Code:
              mysql_update_spieler_training You have an error in your SQL syntax;

              check the manual that corresponds to your MySQL server version for the right syntax to use near
              '= + 1, trainingspunkte = trainingspunkte - 1 where nr = 1' at line 1 
              Zuletzt geändert von Linux5; 23.10.2008, 21:49.

              Kommentar


              • #8
                und mal ein vernünftiges debugging betrieben? oder ein wenig mit dem query herumgespielt?

                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Original geschrieben von Linux5

                  Fehler:
                  PHP-Code:
                  mysql_update_spieler_training You have an error in your SQL syntax;

                  check the manual that corresponds to your MySQL server version for the right syntax to use near
                  '= + 1, trainingspunkte = trainingspunkte - 1 where nr = 1' at line 1 
                  $eigenschaft sollte schon einen Inhalt haben.
                  Assembler ist eine Methode,
                  Programme, die zu langsam laufen,
                  so umzuschreiben,
                  dass sie überhaupt nicht mehr laufen.

                  Kommentar


                  • #10
                    Das ist es ja die Variable "$eigenschaft" ist belegt.

                    Da steht jetzt z.b geschwindigkeit drin.
                    In der Datenbank heißt diese Eigenschaft ebenso geschwindigkeit.
                    Also müsste es doch eigentlich gehen oder nicht?

                    Auch auf die Groß- bzw. Kleinschreibung habe ich beachtet.
                    Zuletzt geändert von Linux5; 27.10.2008, 15:27.

                    Kommentar

                    Lädt...
                    X