Announcement

Collapse
No announcement yet.

insert into funktioniert bei einem Wert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • insert into funktioniert bei einem Wert nicht

    Hallo,

    ich hoffe, ich bin im richtigen Forum gelandet (Ansonsten bitte verschieben).

    Ich habe ein kleines Problem mit einem insert-script. Dieses script hat bisher tadellos funktioniert. Nun habe ich nachträglich in meiner sql-Tabelle das Feld "twitter" eingeführt und wollte es ebenfalls über das insert-Formular verwalten. Merkwürdigerweise schreibt das script alle Eingaben in die Datenbank, bis auf den Eintrag für twitter. Hier mal das script und das zugehörige Formular:

    Script:

    login ...

    $sqlab .= "insert into tux";
    $sqlab .= "(name,mail,website,twitter,distro) values";

    $sqlab .= "('" . $_POST["na"] . "', ";
    $sqlab .= "'" . $_POST["ma"] . "', ";
    $sqlab .= "'" . $_POST["we"] . "', ";
    $sqlab .= "'" . $_POST["tw"] . "', ";
    $sqlab .= "'" . $_POST["di"] . "')";



    mysql_query($sqlab);

    $num = mysql_affected_rows();
    if ($num>0)
    {
    echo "<font color='#000000'>";
    echo "Erfolg !<p>";
    echo "</font>";
    }
    else
    {
    echo "<font color='#000000'>";
    echo "Es ist ein Fehler aufgetreten, ";
    echo "es wurde kein Datensatz hinzugefügt<p>";
    echo "</font>";
    }
    }
    ?>

    Formular:

    <form action = "http://1-million-tux.linux-befehle.org/thx.php" method = "post">
    <br>
    <input name="na" cols=100> Dein Name <p>
    <input name="ma" cols=100> Deine Mailadresse (optional, wird nicht ver&ouml;ffentlicht) <p>
    <input name="we" cols=100> Deine Website oder eine, die du empfehlen m&ouml;chtest (optional) <p>
    <input name="tw" cols=100> Dein twitter-account, z.B. http://twitter.com/1_million_tux (optional) <p>
    <input name="di" cols=100> Distribution <p>

    <input type="submit" value="Absenden" name="gesendet">

    </form>

    Hat vielleicht irgendjemand eine Idee, wo der Fehler liegt? Oder hat es vielleicht damit zu tun, dass "twitter" erst nachträglich zur Datenbank hinzugefügt wurde, während diese schon Datensätze enthielt?

    Bin für jeden Tip dankbar!

    Gruss Woki

  • #2
    Verwende parametrisierte Abfragen. Wie das bei PHP genau funktioniert müsstest du aus der PHP-Doku herausfinden.

    Comment


    • #3
      Hallo,
      welcher Datentyp und welche Feldlänge wurden bei der Spalte twitter hinterlegt
      kind regards
      Jimmy

      Comment


      • #4
        Datentyp und Feldlänge

        mail varchar(100) latin1_german2_ci

        website varchar(100) latin1_german2_ci

        twitter varchar(100) latin1_german2_ci

        Die gleichen, wie bei mail und website auch.

        Comment


        • #5
          Hast Du mal ausgegben was Dein $_POST["tw"] Array enthält.

          Comment


          • #6
            Ausgabe

            Bin leider noch relativ neu in der Programmierung. Wie stellt man das fest?

            Comment


            • #7
              Setzt mal ein

              echo $_POST["tw"] ;
              oder
              var_dump($POST);
              vor Dein
              mysql_query($sqlab);

              Comment


              • #8
                echo $_POST[&quot;tw&quot;] ;

                Hab's ausprobiert.

                Die Ausgabe entspricht in diesem Fall genau der Eingabe.

                Du kannst es ja mal live ausprobieren: http://1-million-tux.linux-befehle.org/indexcopy.php

                Bitte bei den Eingaben irgendwelchen Unsinn hinschreiben.
                Zuletzt editiert von woki; 15.07.2009, 17:27.

                Comment


                • #9
                  Habe gerade selbst mal Dein Script auprobiert und mir eine Tabelle erstellt. Bei mir tritt kein Fehler auf. Das Problem muss also an anderer Stelle sein.

                  Comment


                  • #10
                    Dann ist es wohl ein Problem der Datenbankstruktur :-(

                    Comment


                    • #11
                      Am nachträglichen Einfügen des Feldes kann es nicht liegen. Das ist problemlos möglich. Vielleicht liegt Dein Problem beim Auslesen der Spalte und Dein Select stimmt nicht.

                      Comment


                      • #12
                        Habe gerade mal die Tabelle kopiert und von "tux" in "hell" umbenannt. Entsprechend habe ich mein .$sqlab .= "insert hell"; geändert. Aus mir völlig unerfindlichen Gründen landen die Daten aber trotzdem in der Tabelle "tux".

                        Ich bin jetzt einigermassen verwirrt.

                        Comment


                        • #13
                          Lass mich raten:
                          Du hast auch Deine php Datei kopiert und umbenannt und Dein Formular Submit verweist noch auf die ursprüngliche php Datei.

                          Comment


                          • #14
                            Formular Submit

                            Der Verweis war bisher auf eine andere Seite (thx.php) und die Daten wurden angenommen. Jetzt habe ich den Verweis wieder auf die Eingabeseite (indexcopy.php) gelegt und plötzlich tauchen die Daten auch in der DB auf.

                            Logisch erscheint mir das nicht, aber zumindest löst es erstmal mein Problem.

                            Schönen Dank schon mal für die Hilfe. Vielleicht lässt sich ja noch ergründen WARUM das so ist.

                            Comment

                            Working...
                            X