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

  • Gast-Avatar
    Ein Gast erstellte das Thema UPDATE bringt Meldung "Erfolgreich" ohne Änderung.

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

  • Gast-Avatar
    Ein Gast antwortete
    Zitat von madmaxla
    Also ich weiß, dass das net wirklich formatiert ist aber trotzdem hier der php-code...

    PHP-Code:
    ...
        <
    input type=hidden name=datumzeit value=" ."$row->datumzeit>
         <
    a href=loeschen.php?info=$row->datumzeit>
         [
    LÖSCHEN]</a><td></td><td></td>";
                
    }

    ... 
    Ehm, soll das nun als Auto-Wert genommen werden? Denke nicht.

    Wo bleibt dein hidden-field für die ID?!?

    und sowieso, wenn du schon so: value="."$row->datumzeit"."> nehmen würdest, wäre es auch schon weniger falsch.
    Besser ist sowieso das Zeichen: '
    bsp.: <input type=hidden name=getID value='$row->id'>

    Dann kannst du das beim ändern mittels post-Abfrage abfragen :wink: und so die daten holen

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Also ich weiß, dass das net wirklich formatiert ist aber trotzdem hier der php-code...

    PHP-Code:
     <table border="0" style="position:absolute; left: 0px; top: 0px; width:300px;">
    <form method="POST" action="aendern.php">
          <tr>
       <td align="center"><font class="ueberschriftnews" align="center">
    Kommando-Informationen</font></td><td></td><td></td><td></td></tr>
         <?php


       
    <?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>
         <a href=loeschen.php?info=
    $row->datumzeit>
         [LÖSCHEN]</a><td></td><td></td>"
    ;
                
    }

    ?>
    <tr>
    <td>
    <input name="aendern" value="&Auml;ndern" type="submit"></td><td class=text>
         </form>
    So und die aendern.php sieht so aus...

    PHP-Code:
    <?php

    $user 
    $_POST['user'];
    $infotext $_POST['infotext'];
    $ansprechpartner $_POST['ansprechpartner'];
    $ueberschrift $_POST['ueberschrift'];
    $datumzeit $_POST['datumzeit'];


    $db_host "localhost";
    $db_benutzer "XXXXX";
    $db_kennwort "XXXXXi";
    $db_name "database";

    //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 
    //ueberschrift='".$ueberschrift."', infotext='".$infotext."', user='".$user."', ansprechpartner='".$ansprechpartner."' WHERE datumzeit='".$datumzeit."'";
    $sql_insert=" UPDATE `kommandoinfos` SET ueberschrift = '$ueberschrift',
    infotext = '
    $infotext',
    user = '
    $user',
    ansprechpartner = '
    $ansprechpartner' WHERE datumzeit = '$datumzeit' ";
    $result mysql_query($sql_insert$db);
    if(
    $result)
    {
    echo 
    "Information erfolgreich geändert!!! Bitte kurz warten...\n
    "
    ;

    }
    else
    {
    echo 
    "Beim Versuch, die Information zu ändern ist folgender Fehler aufgetreten:

    \nFehler-Nummer:[b]"
    .mysql_error($db)."[/b]

    \nFehler-Ausgabe:[b]"
    .mysql_error($db)."[/b]";
    }

    mysql_close($db);

           
    ?>
    [/php]

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Zitat von madmaxla
    Ich lasse die Tabelle auslesen mit allen Attributen.. da is die ID dabei.
    Zeige bitte mal die exakte Abfrage. Ich vermute, dass dort irgendwo dein Fehler zu finden ist.

    Einen Kommentar schreiben:


  • duderino
    antwortet
    so würde es auch gehen:

    PHP-Code:
    <?php
    $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); 
    ?>
    Ups. hab ich den Thread wohl zu schnell überflogen. Tut mir leid. Hab nur die erste Seite gelesen. Sorry

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich lasse die Tabelle auslesen mit allen Attributen.. da is die ID dabei.
    Steh ich irgendwie auf der Leitung oder was?!

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Zitat von madmaxla
    Ja genau das habe ich bereits gemacht.
    Und den wert in einem Hidden-Feld übergeben, aber ich krieg trotzdem nur den letzten geändert.
    Wie ermittelst du denn die Daten des entsprechenden Datensatzes, wenn du seine ID kennst?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Was heißt nix übergeben?!
    Ich lese die Werte in der Datenbank aus und zeige diese als Werte des entsprechenden Datensatzes in den Formular-Feldern an.
    In einem hidden-Feld steht die eindeutige ID (Auto-Increment-Wert), anhand dieser ID soll dann der Datensatz eindeutig identifiziert werden und die entsprechenden Werte geändert werden.

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Es heißt nicht umsonst auto_increment. Also übergib der Spalte garnichts, das übernimmt MySQL.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ja genau das habe ich bereits gemacht.
    Und den wert in einem Hidden-Feld übergeben, aber ich krieg trotzdem nur den letzten geändert.

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Du definierst in deiner Datenbanktabelle einfach noch zusätzlich eine Spalte, die die Eigenschaft auto_increment bekommt, was bedeutet, dass MySQL automatisch diese Spalte beim Einfügen von Datensätzen mit einer fortlaufenden Zahl befüllt, über die ein Datensatz eindeutig identifiziert werden kann.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Aber wie kann ich die Felder durchnummerieren, wenn das doch abhängig von dem der Anzahl der Datensätze ist. Muss ich die dann zählen lassen oder wie kann man das realisieren?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von madmaxla
    Ich muss ja dann eigentlich noch ne id oder so mit dem Abschicken-Button übergeben, oder?
    Ahhh, da fängt jemand an mitzudenken.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ja schon klar, aber wie krieg ich das hin?
    Ich muss ja dann eigentlich noch ne id oder so mit dem Abschicken-Button übergeben, oder?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von madmaxla
    Könnt ihr mir vielleicht nen Tipp geben, wie ich das am besten machen kann?!
    Hallo!? Was steht denn da:

    Möglich wäre z.B.
    Felder durchnummerieren
    oder
    Array nehmen
    oder
    pro Eintrag in der DB ein Formular
    oder...

    Gruß
    phpfan

    Einen Kommentar schreiben:

Lädt...
X