Kevin*: mysql UPDATE

Hallo liebe Community,

folgendes Problem.
Diese Anweisung funktioniert nicht, und ich weiß nicht mehr warum. Vielleicht könnt ihr mir helfen.

........
Code

if ($_POST['user'] == 'monatbeitragedit'){
  for ($x=0;$x<=count($monat);$x++){
    $sql = mysql_query ("UPDATE user SET '".$monat[$x]."' = '".$_POST[$monat[$x]]."' WHERE id = '".$_POST['id']."' ") or die (mysql_error());
  }
}

....

Funktion sollte eigentlich so sein.
Die Schleife wird 12 mal durchlaufen. Bei jedem Durchlauf ändern sich

$monat[$x]

$monat[$x] ist ein Array mit den Werten.
Januar , Februar ... Dezember.

Ich habe in meiner DB einzelne Felder die genau wie die Monate im Jahr heißen. Und genau da sollen die Werte der Formularfelder eingetragen werden.

Als Fehler bekomme ich jedesmal

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 ''Januar' = '66' WHERE id = '1'' at line 1

Ich habe mir mal die Werte des Arrays und des einzutragenden Forularfeldes ausgeben lassen. Alles ok.

also bei Januar habe ich im Form Feld den Wert 66
im Februar den Wert 77
usw.

Daher weiß ich das die Syntax der SQL Anfrage falsch ist. Nur finde ich den Fehler leider nicht.

Wer kann mir da einen Tip geben?

LG
Kevin*

  1. Hallo Freunde des gehobenen Forumsgenusses,

    if ($_POST['user'] == 'monatbeitragedit'){

    for ($x=0;$x<=count($monat);$x++){
        $sql = mysql_query ("UPDATE user SET '".$monat[$x]."' = '".$_POST[$monat[$x]]."' WHERE id = '".$_POST['id']."' ") or die (mysql_error());
      }
    }

      
    Was ergibt folgender Code:  
      
    ~~~php
      
    if ($_POST['user'] == 'monatbeitragedit'){  
     for ($x=0;$x<=count($monat);$x++){  
      echo "UPDATE user SET '".$monat[$x]."' = '".$_POST[$monat[$x]]."' WHERE id = '".$_POST['id']."' ";  
     }  
    }  
    
    

    Gruß
    Alexander Brock

    1. if ($_POST['user'] == 'monatbeitragedit'){
      for ($x=0;$x<=count($monat);$x++){
        echo "UPDATE user SET '".$monat[$x]."' = '".$_POST[$monat[$x]]."' WHERE id = '".$_POST['id']."' ";
      }
      }

        
      Naja, er läuft einmal zuviel durch die Schleife. Ok, den Fehler habe ich behoben, nur es funktioniert noch immer nicht. Ich bekomme nach wie vor den gleichen Fehler.  
        
      So siehts im Moment aus  
        
      ~~~php
        
      if ($_POST['user'] == 'monatbeitragedit'){  
        for ($x=0;$x<count($monat);$x++){  
          $sql = mysql_query ("UPDATE user SET '".$monat[$x]."' = '".$_POST[$monat[$x]]."' WHERE id = '".$_GET['id']."' ") or die (mysql_error());  
        }  
      }  
      
      

      ... $x=0;$x<count ... Das = wurde entfernt. Jetzt stimmt alles. Nur die UPDATE Funktion ist irgendwo immernoch fehlerhaft.
      Cerdammt, nur weiß ich echt im Moment nicht wo.

  2. Hallo,

    Als Fehler bekomme ich jedesmal
    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 ''Januar' = '66' WHERE id = '1'' at line 1

    Du willst also dem String "Januar" den Wert "66" zuweisen? Oder ist Januar der Feldname? Dann gehören da aber keine Stringbegrenzer drum.

    viele Grüße

    Axel

    1. Danke ...

      Die Stringbegrenzer waren es. Verdammt.
      Jetzt funktioniert es.

      Danke nochmals euch beiden.

      LG
      Kevin*