Formulardaten werden nicht an mysql übermittelt

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formulardaten werden nicht an mysql übermittelt

    Ih weiß auch nicht mehr woran es liegen kann - die Daten werden einfach nicht eingetragen. Wenn ich print_r test werden aber alle arrays richtig angebenen.

    Das komische ist das nach dem submitbutton zwar "die Änderung war erfolgreich" kommt aber dann die vorher sichtbaren daten aus den Feldern verschwunden sind - nur bei Link steht Ressource#2?!? Aber keine Daten gehen in die DB
    Zuletzt geändert von Tutor; 04.02.2010, 14:23.

  • #2
    Bitte schleunigst den Quellcode umbrechen!

    Danke
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Bitte unbedingt Quellcode umbrechen wie Kropff es schon gesagt hat - am besten editierst du einfach diesen nicht relevanten html-Teil, der so in die Breite geht, einfach weg.

      Guck dir mal den html-Quelltext an wenn du das Formular im Browser angezeigt bekommst und schau mal, was dann beim <form>-Tag im action Attribut drin steht oder mach alternativ mal Testausgaben von $_GET["id"] und $_GET["id_art"].
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        So habe es mal aufs wesentliche beschränkt:

        1. Die Varablennamen stimmen mit den Namen im form Tag überein und genauso mit den Parametern in der DB.

        2. Was ich nicht verstehe, aber wo ich jetzt nicht zwingend den Fehler sehe ist, dass meine Variablen als undefined gewertet werden.

        ist doch eigentlich klar, dass z.B.

        $link_neu = $_POST['link_neu'];

        $link_neu auch erst dann einen Wert hat wenn ich submitte?!

        Oder verstehe ich da was falsch??
        Zuletzt geändert von Tutor; 04.02.2010, 14:23.

        Kommentar


        • #5
          Zitat von Tutor Beitrag anzeigen
          ist doch eigentlich klar, dass z.B.

          $link_neu = $_POST['link_neu'];

          $link_neu auch erst dann einen Wert hat wenn ich submitte?!
          Ja - aber du fragst nirgendwo ab, ob der Scriptaufruf denn überhaupt durch das Abschicken eines Formulars stattgefunden hat.
          Wenn nicht, wenn es ein simpler GET-Request war - dann sind die entsprechenden Werte in $_POST natürlich gar nicht vorhanden.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ich bitte dich nochmal auch deinen Quellcode im Eingangspost entsprechend zu editieren, dass keine horizontale Scrollleiste entsteht

            Sieh dir bitte nochmal den Quelltext im Browser an, wenn du das Formular vor dir hast und schau da mal nach was im action-Attribut des <form>-Tag steht!

            Pack auch deine Query in eine Variable und setze diese bei mysql_query() ein und lass sie dir zusätzlich ausgeben.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Formular How-To

              Zitat von Tutor Beitrag anzeigen
              Was ich nicht verstehe, [...] dass meine Variablen als undefined gewertet werden.

              ist doch eigentlich klar, dass [...] $link_neu auch erst dann einen Wert hat wenn ich submitte?!
              Stimmt genau, also hast du es ja doch verstanden. Man könnte z. B. so vorgehen:

              PHP-Code:
              <?php
                  
              // Standardmäßig das Formular anzeigen
                  
              $showForm true;
                  
                  
              // alle Felder definieren
                  
              $required = array("id""name""emailAdresse", ...); // Pflichtfelder
                  
              $optional = array("vorname""telefon", ...);         // freiwillige Felder
                  
                  // Formulardatencontainer initialisieren
                  
              $data = array();
                  foreach (
              array_merge($required$optional) as $name) {
                      
              $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : "";
                  }
                  
                  
              // Wenn submitted wurde...
                  
              if (isset($_POST["submit"])) {
                      
              // erneute Formularanzeige unterdrücken
                      
              $showForm false;

                      
              // Fehlerarray initialisieren
                      
              $errors = array();
                      
                      
              // Pflichtfelder prüfen und in den Formulardatencontainer importieren
                      
              foreach ($required as $name) {
                          
              $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : "";
                          if (!
              $data[$name]) {
                              
              $errors[] = "Pflichtfeld " $name " ist nicht angegeben.";
                          }
                      }
                      
                      
              // freiwillige Felder in den Formulardatencontainer importieren
                      
              foreach ($optional as $name) {
                          
              $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : "";
                      }
                      
                      
              // weitere Prüfungen auf Sinnhaftigkeit
                      
              if (!is_numeric($data["geburtsjahr"])) {
                          
              $errors[] = "Geburtsjahr muss numerisch sein."
                      
              }
                      ...
                      
                      
              // Fehler?
                      
              if ($errors) {
                          
              // Formular jetzt doch wieder anzeigen ...
                          
              $showForm true;
                          
                          
              // aber erstmal die Fehler melden
                          
              echo("<div class='errors'><p>");
                          echo(
              implode("</p><p>"$errors));
                          echo(
              "</p></div>");
                      }
                  }
                  
                  if (
              $showForm) {
                      
              // Formular anzeigen
                  
              }
              ?>
              Gruß,

              Amica
              Zuletzt geändert von AmicaNoctis; 04.02.2010, 14:56. Grund: Code geändert wegen berechtigter Kritik
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                ok ich denke allerdings, dass es daran liegt, dass ich beim submit auf die selbe seite die id_art nicht mehr mit der URL übergebe - deswegen wird nichts eingetragen in die DB.

                Kommentar


                • #9
                  Zitat von Tutor Beitrag anzeigen
                  ok ich denke allerdings, dass es daran liegt, dass ich beim submit auf die selbe seite die id_art nicht mehr mit der URL übergebe - deswegen wird nichts eingetragen in die DB.
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar


                  • #10
                    @Amica

                    variable Variablen?
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar


                    • #11
                      Zitat von Tutor Beitrag anzeigen
                      dass ich beim submit auf die selbe seite die id_art nicht mehr mit der URL übergebe
                      Dann ersetze $_POST durch $_REQUEST, das ist der Sammelcontainer für $_GET und $_POST.

                      Kannst du jetzt bitte endlich mal den Code hier und hier umbrechen!?!
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Zitat von AmicaNoctis Beitrag anzeigen
                        Dann ersetze $_POST durch $_REQUEST, das ist der Sammelcontainer für $_GET und $_POST.
                        Und dann?
                        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                        Schön - etwas Geschichte kann ja nicht schaden.
                        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                        Kommentar


                        • #13
                          Zitat von Quetschi Beitrag anzeigen
                          variable Variablen?
                          War ja nur ein Beispiel. Ich selbst benutze sie nicht, aber da ja viele Anfänger Variablen direkt in Strings benutzen ("update foo set name='$name'" und solche Geschichten), ist es für diese Leute so einfacher.

                          Zitat von Quetschi Beitrag anzeigen
                          Und dann?
                          Na dann kann man diese id_art auch an die action-URL dranhängen.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Verstehe ich irgendwie nicht wirklich?!

                            Habe es mit hiddenfeldern versucht aber hat nicht geklappt??

                            Kommentar


                            • #15
                              Zitat von Tutor Beitrag anzeigen
                              Verstehe ich irgendwie nicht wirklich?!
                              Was denn?

                              Zitat von Tutor Beitrag anzeigen
                              Habe es mit hiddenfeldern versucht aber hat nicht geklappt??
                              "nicht geklappt" ist keine Problembeschreibung und "Code umbrechen" heißt nicht "Code löschen und dadurch dem Thread den Sinn entziehen"
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X