Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular Speichern geht nicht

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

  • Formular Speichern geht nicht

    Hallo,
    ich habe eine kfz.html mit folgenden Inhalt

    HTML-Code:
    <!DOCTYPE html>
    <head>
    <meta name="viewport"  content="width=device-width,  initial-scale=1, user-scalable=no">
    
        <link href="design.css" rel="stylesheet">
    </head>
    <body>
    
    
    <div  class="wmfg_layout_2">
    
    
    
    
    
    <form  action="save.php"  method="post">
    
    <ul class="wmfg_questions">
    
        <li class="wmfg_q">
            <label class="wmfg_label" for="text_id">LK</label>
            <input type="text" class="wmfg_text" name="lk" id="lk" value=""  />
    
        </li>
    
        <li class="wmfg_q">
            <label class="wmfg_label" for="text_id">Buchstaben</label>
            <input type="text" class="wmfg_text" name="abc" id="abc" value="" />
        </li>
    
        <li class="wmfg_q">
            <label class="wmfg_label" for="text_id">Nr.</label>
            <input type="text" class="wmfg_text" name="zahlen" id="zahlen" value="" />
        </li>
    
        <li class="wmfg_q">
            <label class="wmfg_label" for="textarea_id">Notizen</label>
            <textarea class="wmfg_textarea" name="notiz" id="notiz" style="height:140px"></textarea>
        </li>
    
        <li class="wmfg_q">
            <input type="submit" class="wmfg_btn" name="submit" id="submit" value="Speichern" />
        </li>
    
    </ul>
    
    </form>
    
    </div>
    
    
    </body>

    Dazu die save.php
    ,

    PHP-Code:
    <?php

    //aufbau der datenbankverbindung
    $host 'localhost';
    $user 'xxxxxxxxx';
    $password 'xxxxxxxxxxxx';
    $db 'xxxxxxxxx';

    //verbindung zur db herstellen
    mysql_connect($host$user$password) or exit ("Keine Verbindung hergestellt");
    mysql_select_db($db) or exit ("Datenbank nicht geöffnet");

    //übergabe der variablen
    $lk$_POST["lk"];
    $abc$_POST["abc"];
    $zahlen$_POST["zahlen"];
    $notiz$_POST["notiz"];


    //sql-befehl zum eintragen der daten in die tabelle
    $eintrag "INSERT INTO kfz (lk, abc, zahlen,
    notiz) VALUES ('
    $lk', '$abc',
    $zahlen', '$notiz')";

    //nun erfolgt der eintrag in die tabelle
    $eintragen mysql_query($eintrag);

    if(
    $eintragen)
    echo 
    "Datensatz hinzugefügt";
    else
    echo 
    "Kein Datensatz hinzugefügt";

    //datenbank wieder schliessen
    mysql_close();

    ?>
    Wenn ich nun das Formular ausfülle und SPeichern will kommt Kein Datensatz hinzugefügt.

    Was mache ich falsch?

    Liebe Grüße


  • #2
    Die mysql_* Funktionen sind veraltet und sollten nicht mehr verwendet werden.

    Auch solltest du keine Variablen direkt in SQL-Code einfügen. Entweder du escapest sie oder verwendest Prepared Statements.

    Wenn mysql_query() FALSE liefert, ist ein Fehler aufgetreten. Diesen solltest du dir auch anschauen. Dafüt gibts mysql_error(), aber wie gesagt, mysql_* Funktionen sollten sowieso nicht mehr verwendet werden.

    Kommentar


    • #3
      Die MySQL Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwende stattdessen mysqli oder gleich PDO

      Edit: hellbringer war schneller

      Kommentar


      • #4
        Da ich Anfänger bin und mich nicht so auskenne meine Frage,

        ich will ein einfaches Formular mit 3 Feldern und ein Notiz feld mit Datum und Uhrzeit der Notiz in MySQL speichern.

        wenn ich nun erneut was speichern will und es ist in der Datenbank bereits vorhanden, sollen alle Felder bis auf das notizfeld gesperrt sein.
        beim erneuten speichern soll ne neue Zeile bei Notizen erscheinen.
        ist das für einen Anfänger schwer oder machbar?

        Kommentar


        • #5
          Machbar, aber schau erstmal, dass du das Beispiel oben sauber mit PDO ans Laufen bekommst.

          Kommentar


          • #6
            Zitat von canna4u Beitrag anzeigen
            ich will ein einfaches Formular mit 3 Feldern und ein Notiz feld mit Datum und Uhrzeit der Notiz in MySQL speichern.
            Dir fehlt der Primärschlüssel, dies kann ein Feld sein mit einer fortlaufenden ID oder aber das KFZ-Kennzeichen selbst.
            Datum und Uhrzeit gehören nicht in ein Notizfeld sondern in eine extra Spalte, vom Datentyp DATETIME oder wenn du es automatisch ausgefüllt werden soll vom Typ TIMESTAMP.

            Da du neben PHP auch eine Mysql DB verwenden willst, empfehle ich dir, dich unbedingt mit SQL und den Feinheiten von Mysql auseinander zu setzen

            PHP Handbuch - Beispiel zu Mysqli
            Handbuch zu Mysql
            Tutorial
            Spickzettel


            Kommentar


            • #7
              Hab es nun hinbekommen das die Daten wie gewünscht gespeichert werden.

              ist es möglich wenn ich ein Kennzeichen eingib und speichern will, dies aber bereits existiert das mir die restlichen Felder aus der dB geladen werden?

              Kommentar


              • #8
                Zitat von canna4u Beitrag anzeigen
                ist es möglich wenn ich ein Kennzeichen eingib und speichern will, dies aber bereits existiert das mir die restlichen Felder aus der dB geladen werden?
                Ja.
                Je nach dem wie du es haben willst gibt es mehrere Möglichkeiten. Mit und ohne Javascript.
                Du solltest es daher präzisieren, wie deine Anwendung genau funktionieren soll.


                Kommentar


                • #9
                  Ich will ein Kennzeichen eingeben,
                  ist dies vorhanden soll es mir angezeigt werden was in der Datenbank gespeichert wurde.
                  ist es nicht gespeichert soll ein neuer Eintrag hinzugefügt werden.
                  ist der Eintrag vorhanden und wird mir angezeigt will ich bei Notizen einen neuen Eintrag hinzufügen und den Eintrag updaten

                  Kommentar


                  • #10
                    Schau dir mal das Thema Affenformular an.
                    Den Rest musst du programmieren.

                    Es wäre auch einfacher, wenn du das KFZ-Kennzeichen in einer Spalte speichern würdest und nicht aufteilst, das gilt auch für das Eingabefeld, eins reicht hier doch.

                    Kommentar

                    Lädt...
                    X