INSERT nicht möglich ...........

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

  • INSERT nicht möglich ...........

    Hallo Leute !

    Ich schlag mich hier jetzt schon eine ganze Weile rum und komm einfach nicht auf die Lösung des Problems ....

    Ich bin mit PHP und MySQL noch ganz neu. ...
    Vielleicht kann mir ja jemand helfen.

    Es handelt sich um ein einfaches in PHP geschriebenes Gästebuch.

    Es werden Daten in Textfelder geschrieben und diese sollten dann über eine INSERT-Anweisung in die Datenbank eingefügt werden. Nur genau das tuen sie nicht.
    Es passiert einfach gar nichts.
    Wenn ich nach der Texteingabe in die Textfelder den 'submit'-Button drücke
    verschwindet der Text aus den Textfeldern und in die Datenbank werden keine Daten
    eingefügt. Es gibt auch keine Fehlermeldung .... Schon alles ziemlich mysteriös, denn von der Konsole aus kann ich Daten mit 'Insert' in die Datenbank einfügen . Nur von meinem PHP-Script kriege ich keinen
    'Insert'-Zugriff auf die Datenbank. Das Eigenartige dabei ist, daß ich mir aber von
    einem PHP-Script aus mit der 'Select * From'-Anweisung die Daten die bereits in der
    Datenbank liegen ausgeben lassen kann ....
    Die Verbindung zur Datenbank selbst muß wohl in Ordnung sein.


    Aber ich denke langsam komme ich der Lösung des Problems näher ... ;-)


    Ich habe wieder ein paar Sachen zur Problemlösung probiert.
    Für den Benutzername habe ich 'root' und auch 'jobst' probiert. Beides wurde angenommen. Aber ohne Erfolg.
    Dann habe ich die Variablen-Kennzeichnung
    $_POST['$name'] = $name; umgedreht zu
    $name = $_POST['$name'];
    Auch das wird angenommen, aber ohne Erfolg.

    Die Fehlermeldung habe ich eingefügt. Es werden aber keine Fehler beim Ausführen angezeigt.
    Dabei kam mir Idee innerhalb der SQL-Anfrage einfach mal imaginäre Sachen reinzuschreiben - wie es dann so mit den Fehlermeldungen aussieht ........
    Und siehe da :
    Ich kann den größten Unsinn
    reinschreiben und es gibt keine Fehlermeldungen !!!!!!!!!!!!!!!!!!!!!
    Eigenartig dabei ist daß dies nur bei 'create_entry.php' so der Fall ist. Beim funktionierenden Script 'view.php! (siehe weiter unten) zum Anzeigen des Tabellen-Inhalts kann ich keine Fehler einbauen. Dort werden sie sofort erkannt .....

    O.k., wie gesagt, den Inhalt einer Tabelle kann ich mir anzeigen lassen. Dieses Script funktioniert dabei ohne Probleme :

    'view.php' :

    <?php include("dbconnect.php"); ?>

    <h2>Gästebuch!!</h2>

    <?php

    $result = mysql_query("select * from gaestebuch") or die ("Fehler");
    if ($result)
    {
    while ($row = mysql_fetch_array($result))
    {
    print "<b>Name:</b>";
    print $row["name"];
    print "<br>\n";
    print "<b>Ort:</b>";
    print $row["ort"];
    print "<br>\n";
    print "<b>E-Mail:</b>";
    print $row["email"];
    print "<br>\n";
    print "<b>URL:</b>";
    print $row["url"];
    print "<br>\n";
    print "<b>Kommentar:</b>";
    print $row["kommentar"];
    print "<br>\n";
    print "<br>\n";
    print "<br>\n";
    }
    mysql_free_result($result);
    }
    ?>
    <h2><a href="sign.php">Signieren Sie mein Gästebuch!!</a></h2>

    Das Problem liegt dann wohl eher irgendwo hier in diesen beiden Scripten über die die Daten per 'INSERT' in die Datenbank eingefügt werden sollen :


    'sign.php' :


    <?php include ("dbconnect.php"); ?>

    <h2>Signieren Sie mein Gästebuch !!!</h2>

    <form method=post action="create_entry.php">

    <b>Name:</b>
    <input type=text size=40 name=name>
    <br>
    <b>Ort:</b>
    <input type=text size=40 name=ort>
    <br>
    <b>E-Mail:</b>
    <input type=text size=40 name=email>
    <br>
    <b>URL:</b>
    <input type=text size=40 name=url>
    <br>
    <b>Kommentar:</b>
    <textarea name=kommentar cols=40 rows=4 wrap=virtual></textarea>
    <br>

    <input type=submit name=submit value="Signieren!">
    <input type=reset name=reset value="Löschen">
    </form>



    und 'create_entry.php' :



    <?php include("dbconnect.php"); ?>
    <?php

    if ($submit == "submit")
    {

    $name = $_POST['name'];
    $ort = $_POST['ort'];
    $email = $_POST['email'];
    $kommentar = $_POST['kommentar'];


    $query = "insert into gaestebuch "
    ." (name,ort,email,url,kommentar) values "
    ."('$name', '$ort', '$email', '$url', '$kommentar')"
    ;
    mysql_query($query)
    or print "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
    ?>
    <h2>Danke!!</h2>
    <h2><a href="view.php">Sehen Sie mein Gästebuch an!!!</a></h2>
    <?php
    }
    else
    {
    include("sign.php");
    }
    ?>


    So, also daß keine Fehlermeldungen angezeigt werden, gibt ja vielleicht noch einen Hoffnungsschimmer ;-)


    Erst mal bis dann,

    Grüße, Jobst ;-) ;-) ;-)

  • #2
    in der 'create_entry.php' ist $url nicht definiert, soweit ich sehe.

    Wenn in einer Query ein Wert fehlt oder ein Spaltennamen falsch geschrieben ist passiert nichts, es werden IMO auch keine Fehlermeldungen ausgegeben.
    mfg

    Kommentar


    • #3
      Hallo Jobst,

      müsste es nicht heissen:

      PHP-Code:
      if ($_POST[submit] == "submit"
      ??

      da Du ja name, ort etc. auch mit $_POST[] abfragst vermute ich mal, dass in der php.ini "register_globals" auf "off" steht.

      Vielleicht hilfts ja?
      Grüße an alle und weiterhin frohes Arbeiten

      Kommentar


      • #4
        Hallo Leute !

        $url habe ich in die in die 'create_entry.php' eingefügt, und
        if ($_POST[submit] == "submit") eingetragen. Leider gibts keine Veränderung .....
        Die 'global options sind auf 'off' gestellt.

        Trotzdem besten Dank,

        Grüße, Jobst ;-)

        Kommentar


        • #5
          Hallo,

          läuft er überhaupt in die if-schleife rein?
          Du könntest das ja mal testen mit:
          PHP-Code:
          if ($_POST[submit] == "submit") {
          echo 
          "111";
          $name...usw
          oder Du kannst mal schauen was mit dem POST überhaupt rüberkommt mit:
          PHP-Code:
          print_r($_POST); 
          Zuletzt geändert von eSHa; 10.09.2002, 07:11.
          Grüße an alle und weiterhin frohes Arbeiten

          Kommentar


          • #6
            Hallo eSHa !

            Ich habe Deine Tips probiert.
            Und zwar habe ich die Eintragungen in der 'create_entry.php' nach diesem Schema gemacht :


            <?php include("dbconnect.php"); ?>
            <?php
            print_r($_POST);

            if ($_POST[submit] == "submit")
            {
            echo "111";

            $name = $_POST['name'];
            $ort = $_POST['ort'];
            $email = $_POST['email'];
            $url = $_POST['url'];
            $kommentar = $_POST['kommentar'];

            echo "111"; bringt gar keine Veränderung,
            zeigt nichts an.
            Nachdem ich oberhalb der 'if-Schleife'
            print_r($_POST); eingefügt habe, wird mir nun oberhalb der Textfelder der einfache Schriftzug 'Array ( )' mit angezeigt.

            Das ist es auch schon. Aber sehr interessant daß gar nicht in die 'if-Schleife gegangen wird ..........

            Grüße, Jobst ;-)


            NACHTRAG :

            In genau diesem Augenblick habe ich die Lösung gefunden !
            Ich bin sowas von erleichtert es ist aber auch ganz schön peinlich, wie man sowas übersehen kann ..........................

            Ich hatte die Variablen-Kennzeichnung erst vor kurzer Zeit auf $_POST geändert, nachdem ich erfuhr daß dies mit PHP >= 4.2 nötig wäre.
            Der einzige Fehler den ich jetzt nur noch gemacht habe war für den Button nicht "Signieren!" sondern "submit" anzugeben. Die Änderung sieht jetzt so aus und die ganze Sache läuft wie Zucker ;-) .


            if ($_POST[submit] == "Signieren!")
            {

            $name = $_POST['name'];
            $ort = $_POST['ort'];
            $email = $_POST['email'];
            $url = $_POST['url'];
            $kommentar = $_POST['kommentar'];


            Auf jeden Fall VIELEN DANK für die Hilfe !

            Grüße, Jobst ;-) ;-) ;-)

            Kommentar


            • #7
              Lösung gefunden !!!!!!!!!

              Hallo Leute ! ;-)

              Ich habe die Lösung gefunden !
              Ich bin sowas von erleichtert, es ist aber auch ganz schön peinlich,
              wie man sowas übersehen kann ..........................
              Aber ohne Euch hätte ich keine Chance gehabt .........


              Ich hatte die Variablen-Kennzeichnung erst vor kurzer Zeit auf $_POST geändert,
              nachdem ich erfuhr daß dies mit PHP >= 4.2 nötig wäre.
              Der einzige Fehler den ich jetzt nur noch gemacht habe war für den
              Button nicht "Signieren!" sondern "submit" anzugeben.
              Ich kann jetzt mit INSERT Daten in die Datenbank einfügen !
              Die Änderung sieht jetzt so aus und die ganze Sache läuft wie Zucker ;-) .



              if ($_POST[submit] == "Signieren!")
              {

              $name = $_POST['name'];
              $ort = $_POST['ort'];
              $email = $_POST['email'];
              $url = $_POST['url'];
              $kommentar = $_POST['kommentar'];


              Auf jeden Fall VIELEN DANK für die Hilfe und Eure Bemühungen !!!


              Grüße, Jobst ;-) ;-) ;-)

              Kommentar


              • #8
                ... und wieder einer der sich seine Fehler selber findet, und wieder ein Kunde weniger

                Kommentar


                • #9
                  Hallo hand !

                  Ich werde sicher noch oft ins Forum schauen !
                  Ich beginne ja gerade erst damit in PHP zu schreiben ...

                  Bis zum nächsten Mal !

                  Jobst

                  Kommentar

                  Lädt...
                  X