Ankündigung

Einklappen
Keine Ankündigung bisher.

UPDATE bringt Meldung "Erfolgreich" ohne Änderung

Einklappen

Neue Werbung 2019

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

  • UPDATE bringt Meldung "Erfolgreich" ohne Änderung

    Hallo zusammen,

    habe das Problem, dass ich immer diesen Fehler angezeigt bekomme:
    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...

    Ich greife über ein Formular auf die aendern.php zurück.
    Der Code der aendern.php sieht so aus:

    [php]
    <?php

    $infotext = " ' ".$_POST['user']." ' ";
    $infotext = " ' ".$_POST['infotext']." ' ";
    $ansprechpartner = " ' ".$_POST['ansprechpartner']." ' ";
    $ueberschrift = " ' ".$_POST['ueberschrift']." ' ";
    $datumzeit = " ' ".$_POST['datumzeit']." ' ";


    $db_host = "localhost";
    $db_benutzer = "xxxxx";
    $db_kennwort = "xxxxx";
    $db_name = "xxxxxx";

    //Datenbankeintrag
    $db = mysql_connect($db_host,$db_benutzer,$db_kennwort) or
    die ("Es ist ein Fehler bei der Verbindungsaufnahme aufgetreten
    ");

    mysql_select_db($db_name, $db)
    or die ("Es ist ein Fehler bei der Verbindungsaufnahme aufgetreten!
    ");

    $sql_insert=" UPDATE `kommandoinfos` SET `datumzeit` = NOW( ) ,
    `ueberschrift` = '$ueberschrift',
    `infotext` = '$infotext',
    `user` = '$user',
    `ansprechpartner` = '$ansprechpartner' WHERE `datumzeit` = '$datumzeit' LIMIT 1 ";
    $result = mysql_query($sql_insert, $db);
    if($result)
    {
    echo "Information erfolgreich geändert!!!\n
    ";
    }
    else
    {
    echo "Beim Versuch, die Information zu ändern ist folgender Fehler aufgetreten:

    \nFehler-Nummer:".mysql_error($db)."

    \nFehler-Ausgabe:".mysql_error($db)."";
    }

    mysql_close($db);


    ?>


    PHP-Code:

    Kann mir hierbei jemand helfen
    ??? Ich denke es liegt an der Update-Abfrage.

    Danke... 

  • #2
    Warum um alles in der Welt postest du die Fehlermeldung nicht komplett? Damit wir besser raten können?

    Gruß
    phpfan

    Kommentar


    • #3
      Sorry, also hier die fehlermeldung komplett...

      Beim Versuch, die Information zu ändern ist folgender Fehler aufgetreten:
      Fehler-Nummer: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 'fdfsasdfdsfs ' ', `infotext` = ' ' ffweererererraslkdf
      Fehler-Ausgabe: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 'fdfsasdfdsfs ' ', `infotext` = ' ' ffweererererraslkdf

      Kommentar


      • #4
        Du setzt oben bei $infotext = " ' ".$_POST["infotext"]." ' " einfache Anführungszeichen und unten bei $sql_insert.

        Bei SQL Fehlern einfach mal das SQL-Statement mit echo oder print ausgeben und dann wärst du schon selbst drauf gekommen, dass da ein paar ' zuviel sind...

        Kommentar


        • #5
          Hmm... sorry, das versteh ich jetzt nicht ganz ich hab oben einfache Anführungszeichen und unten?!

          Kommentar


          • #6
            $infotext = "'" . $_POST['user'] . "' ";

            `infotext` = '$infotext',

            Das sind eindeutig zu viele '

            Gruß
            phpfan

            Kommentar


            • #7
              Danke aber
              beim INSERT INTO funktionierts so.

              Kommentar


              • #8
                Zitat von madmaxla
                aber beim INSERT INTO funktionierts so.
                Das glaube ich nicht.

                Gruß
                phpfan

                Kommentar


                • #9
                  Puuh.... ich hab jetzt sämtliche varianten mit den Anführungszeichen
                  versucht. Allerdings blieben alle erfolglos.
                  Er will mir das einfach nicht aktualisieren.

                  Und bei INSERT INTO funktionierts doch!

                  Kommentar


                  • #10
                    Lass die ' hier einfach weg:
                    PHP-Code:
                    $infotext " ' ".$_POST['infotext']." ' "
                    PHP-Code:
                    $infotext $_POST['infotext']; 
                    Und bei INSERT INTO funktionierts doch!
                    Wenn du das genauso gemacht hast wie hier: Niemals!!!

                    Gruß
                    phpfan

                    Kommentar


                    • #11
                      Haha...

                      danke jetzt klappts...
                      jetzt hab ich nur noch einen Fehler!
                      Es sollen die Informationen aufgelistet werden und jede information soll sofort über den Ändern-Button geändert werden.
                      Leider geht das Ändern nur bei der letzten Information bei allen anderen kommt zwar die Meldung erfolgreich geändert aber geändert wird nur die letzte.

                      Hier auch der Code hierzu....

                      PHP-Code:

                         <?php
                            $result
                      =mysql_query('SELECT datumzeit, ueberschrift, infotext, user, datum, ansprechpartner  FROM `kommandoinfos` ORDER BY datum DESC LIMIT 5'); 
                          
                           if (!
                      $result) {
                               die(
                      'Ungültige Abfrage: ' mysql_error());
                              }
                          


                                  
                      $query "SHOW COLUMNS FROM kommandoinfos LIKE 'user'";
                      $erg=mysql_query($query);
                      $row=mysql_fetch_row($erg);
                      $werte=explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\\2",$row[1]));
                      echo 
                      "<pre>";
                      //print_r($werte);


                              
                              
                      while ($row=mysql_fetch_object($result)) {
                              
                               echo 
                               
                      "<tr><td></td><td></td></tr>"
                                
                      ."<tr>"."<td class=akteinsatz align=left>Überschrift/Thema:</td>"."<td class=akteinsatz>Datum:"."</td>"."</tr>"
                               
                      ."<tr>"."<td class=akteinsatz align=left><input type=text name=ueberschrift size=100 value="."$row->ueberschrift"."></td>"
                                  
                      ."<td class=akteinsatz align=left>".date("d.m.y"strtotime($row->datum))."</td>"
                                  
                      ."<td class=text>"."<td class=text>"."</td>"
                              
                      ."<tr>"."<td class=akteinsatz>Mitteilung/Information:</td><td></td></tr>"
                               
                      ."<tr>"."<td class=text align=left><textarea name=infotext cols=80 rows=10 id=infotext>$row->infotext</textarea></td>"."<td class=text align=left>Ansprechpartner:
                      "
                      ."<input type=varchar name=ansprechpartner size=20 value="."$row->ansprechpartner>"
                                  
                      ."

                      "
                      ."<font>Gez.:</font>"."
                      "
                      ."<select name=user size=1 id=user>
                            <option>
                      $werte[0]</option>
                            <option>
                      $werte[1]</option>
                          </select>"
                      ."</td><td></td><td></td>"."</tr>"
                          
                      ."<tr><td class=text><input type=hidden name=datumzeit value="."$row->datumzeit><input name=aendern value=&Auml;ndern type=submit></td><td class=text><a href=loeschen.php?info=$row->datumzeit>[LÖSCHEN]</a><td></td><td></td>";

                                      
                              
                      }
                      echo 
                      "





                      "
                      ;
                      ?>
                           </form>
                      </table>
                      Woran könnte das liegen???

                      Kommentar


                      • #12
                        Wenn du diese Buchstabenwüste mal ordentlich formatierst, sehe ich mir das vielleicht auch an. Dieser rote Chaostext ist unleserlich! Aber trotzdem noch ein Hinweis: Woher soll PHP bei mehreren Input-Feldern mit gleichen Namen wissen, welches Feld du meinst?

                        Gruß
                        phpfan

                        Kommentar


                        • #13
                          naja gut, wo du recht hast, hast du recht. es ist zwar nicht schön,
                          aber es ist mein...

                          Aber php erfährt das doch dadurch, dass ich in der aendern.php sag, er soll
                          nur den datensatz ändern bei dem datumzeit gleich ist (Übergebe ich mit dem hidden-feld).

                          Kommentar


                          • #14
                            Bitte mal mitdenken!!!

                            Wenn z.B. 10 Einträge in der DB gefunden werden, dann hast du 10x

                            <input type=varchar name=ansprechpartner ......>

                            Und woher soll PHP jetzt wissen, welches Feld er nehmen soll? Solange du immer gleiche Namen hast, wird immer das letzte Feld in der Reihenfolge genommen!

                            11. Variablen und Formulare
                            http://faq-phpfriend.de/ch/ch-webvariablen.html

                            Grundlagen lernen wäre vielleicht nicht die schlechteste Idee!

                            Gruß
                            phpfan

                            Kommentar


                            • #15
                              Ja, soweit bin ich mittlerweile auch, allerdings hab ich keine
                              ahnung, wie ich das Problem beheben könnte...

                              Krieg ich nen tipp

                              Kommentar

                              Lädt...
                              X