Update - Funktion fehlerhaft ?!?

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

  • Update - Funktion fehlerhaft ?!?

    Hallo ^^

    Also folgendes Problem: hab ein simples script, welches auf eine datenbank zugreif. mit dem script kann man einträge erstellen, ändern und löschen. leider bekomme ich eine fehlermeldung (#1064) angezeigt, angeblich sei etwas an dem update-syntax falsch, und zwar an der stelle '$news,...' . zudem setzt er den eigentlichen geänderten eintrag dann als neuen eintrag in die datenbank.
    ebenfalls komisch ist, dass das script bei mir abgeändert mit zugriff auf eine andere datenbank keine probleme macht.

    es gibt folgende variablen im script:
    $id, $day, $month, $year, $topic, $news, $pic, $pic_alt, $date, $enable


    und das update-script:

    <td valign="top" bgcolor="ffffff"> <!--Ändern-->

    <?php

    if (!$geaendert) {

    ?>

    <t>Eintrag ändern:</t>
    <form name="fchange" method="POST" action="<?php echo $PHP_SELF ?>">
    <table>
    <tr>
    <td>
    <table>
    <tr>
    <td>
    <table>
    <tr>
    <td><t>ID-Nummer:</t></td><td widht="6"></td><td><input type="text" name="id" value="Nummer"></td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <tr>
    <td><t>Datum:</t></td>
    </tr>
    <tr>
    <td>
    <table>
    <tr>
    <td width="40"></td><td><input type="text" size="10" name="day" value="Tag"></td>
    </tr>
    <tr>
    <td></td><td><input type="text" size="10" name="month" value="Monat"></td>
    </tr>
    <tr>
    <td></td><td><input type="text" size="10" name="year" value="Jahr"></td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td>
    <table>
    <tr>
    <td><t>Topic:</t></td><td widht="6"></td><td><input type="text" size="30" name="topic" value="Topic"></td>
    </tr>
    <tr>
    <td><t>News:</t></td><td widht="6"></td><br>
    <td><textarea name="news" cols="50" rows="10" value="News"></textarea></td></td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td>
    <table>
    <tr>
    <td><t>Bild-URL:</t></td><td widht="6"></td><td><input type="text" size="40" name="pic" value="name.gif"></td>
    </tr>
    <tr>
    <td><t>Bild-ALT:</t></td><td widht="6"></td><td><input type="text" name="pic_alt" value=""></td></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td>
    <table>
    <tr>
    <td><input type="submit" name="Submit" value="Senden"></td>
    <td width="6"></td>
    <td><input type="reset" name="Reset" value="Zurück"></td>
    <td><input type="hidden" name="geaendert" value="1"></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </form>

    <?php

    } else {

    $date = "'" . $day . "." . $month . "." . $year . "'";
    $topic = "'" . $topic . "'";
    $news = "'" . $news . "'";
    $pic = "'" . "Pics/news/" . $pic . "'";
    $pic_alt = "'" . $pic_alt . "'";
    $enable = 0;
    $result = mysql_query("UPDATE News SET date=$date,topic=$topic,news=$news,pic=$pic,pic_alt=$pic_alt,enable=$enable WHERE id=$id")
    or die("Fehler: #" . mysql_errno(). " --> " . mysql_error());

    }

    ?>

    </td>


    schon im voraus danke für hilfe.
    Zuletzt geändert von ragnar; 17.12.2005, 12:59.

  • #2
    http://www.php-resource.de/forum/sho...threadid=50454 lesen und befolgen.

    lass dir die query ausgeben, bevor du sie an die db schickst und poste diese hier, bitte.

    Kommentar


    • #3
      ID: 15
      Datum: '17.12.05'
      Thema: ''test''
      news: ''test test''
      pic: 'Pics/news/'Pics/news/test.gif''
      pic_alt: ''test''
      Enable: 0

      Fehler: #1064 --> 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 'test'',news=''test test'',pic='Pics/news/'Pics/news/test.gif'',

      Kommentar


      • #4
        Original geschrieben von penizillin
        lass dir die query ausgeben, bevor du sie an die db schickst und poste diese hier, bitte.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          kein plan, wie geb ich denn die query aus?

          Kommentar


          • #6
            was schickst du an die db? einen string.
            gib den aus (mit echo un so, is klar, ne?) und zeig den. ok?

            Kommentar


            • #7
              *amkopfkratzt* hab ich doch gemacht:

              Dat was nachm doppelpunkt steht sind die dinge, die an die db geschickt werden ( mit anführungszeichen sind strings, id und enable sind integer)

              ID: 15
              Datum: '17.12.05'
              Thema: ''test''
              news: ''test test''
              pic: 'Pics/news/'Pics/news/test.gif''
              pic_alt: ''test''
              Enable: 0


              und dat nun die fehlermeldung:
              Fehler: #1064 --> 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 'test'',news=''test test'',pic='Pics/news/'Pics/news/test.gif'',

              Kommentar


              • #8
                PHP-Code:
                $query 'SELECT * FROM tabelle';
                echo 
                $query;
                $result mysql_query($query); 

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  nein. eine query beginnt in deinem spezialfall mit
                  Code:
                  "UPDATE News SET ...
                  diesen string möchten wir sehen, und zwar in der form, in der er an die db geht. ok?

                  Kommentar


                  • #10
                    Original geschrieben von ragnar
                    Fehler: #1064 --> 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 'test'',news=''test test'',pic='Pics/news/'Pics/news/test.gif'',
                    Das sieht mehr als komisch aus

                    Die Anführungszeichen solltest du "Backspacen" wenn sie mit in die Datenbank geschrieben werden sollen.

                    PHP-Code:
                    //Beispiel
                    mysql_query("UPDATE table SET feld1='Hier mein \"Text\" xy' WHERE id=$id"); 
                    Gruß Fritzmaker

                    Kommentar


                    • #11
                      ähm lol...also vielleicht sagt mir jemand was da stehen könnte oder sollte, weil bei mir gibt er schlicht nur eine '1' aus.

                      Kommentar


                      • #12
                        versuch mal ghostgamblers beispiel zu verstehen.

                        Kommentar


                        • #13
                          den code habe ich nun eingeben:


                          $query = 'UPDATE News SET date=$date2,topic=$topic2,news=$news2,pic=$pic2,pic_alt=$pic_alt2,enable=$enable2 WHERE id=$id2';

                          echo $query;

                          $result = mysql_query($query);




                          und die ausgabe entsprechend:
                          UPDATE News SET date=$date2,topic=$topic2,news=$news2,pic=$pic2,pic_alt=$pic_alt2,enable=$enable2 WHERE id=$id2


                          (btw habe den formularvariablen allen die ziffer 2 drangehängt, da ich davor noch ein formular habe, dass varialben mit gleichen namen benutzt)

                          Kommentar


                          • #14
                            In der Ausgabe dürften eigentlich keine Variablennamen stehen sondern die Werte der Variablen.

                            Kommentar


                            • #15
                              Code:
                              "UPDATE ...
                              statt
                              Code:
                              'UPDATE ...

                              Kommentar

                              Lädt...
                              X