Formuladaten mit PHP an MySQL übergeben?

  • Hi Leute! Ich bin in letzter Zeit sehr bemüht intensiv PHP und MySQL zu lernen und habe derzeit keinen Erfolg mein Programm zum laufen zu bringen. Nach ewiegen versuchen, recherchieren und probieren klappt es leider immer noch nicht. Deswegen bitte ich freundlichst um Eure Hilfe. Also ich habe einen localen WAMP auf meinem PC am laufen. Ich versuche mittels einem Formular Daten in meine MySQL Datenbank zu schreiben. Das ist mein aktuelles Problem. Habe sehr sehr viel Zeit verschwendet, doch nichts hat es genutzt.
    Hier mein Script:(Unschön weil eben nur zu Testzwecken)


  • Und den Query sauber formatieren. Ein paar Zusätzliche Leerzeichen würden dem noch gut tun..

    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr
    :D

  • Danke für deine schnelle Antwort! Habe diesen Teil gerade abgeändert.
    if(!empty($_POST['button']))


    Doch leider kommen die Daten aus dem Formular immer noch nicht in der DB an!? Ich hoffe der Rest des Scripts ist einigermassen anständig programmiert.
    Die Daten wollen nicht in die MqSQL DB?????
    Was muss ich den noch verändern. Würde mich unendlich freuen wenn es mal funktionieren würde. Das fertige Script (Formualrdaten an MySQL übergeben)aus dem traum-projekt hatte ich damals auch probiert und es klappte auch. Aber als ich es nach meinen wünschen nur leicht abändern wollte lief es schon nicht mehr. Wenn das mit meinem Script mal laufen würde, dann würde ich mich voll reinhengen. Doch derzeit ist die Lust echt weg bei mir. Was nicht wird kann aber noch werden.

  • Laß mal das mit dem $id weg. Das sollte ein auto_inc Wert sein und Du erzwingst das setzen. Allerdings nimmst Du ein $_POST['id'] dafür her, dass gar nicht existiert und logischerweise leer ist. Wie so also die DB einen Datensatz mit der ID xy hinzufügen, wenn xy gar nicht existiert?


    Also, entweder überall das "id" rausnehmen oder im Formular dem Hidden-Field auch einen Value mit der ID mitgeben.

  • Aktuell sieht das bei mir nun so aus: (Tabellen Struktur)
    Feld Typ Null Standard
    vorname varchar(100) Ja NULL
    nachname varchar(100) Ja NULL
    kdnr int(255) Ja NULL


    Script:
    <?
    $dbname="kunden";
    $dbhost="localhost";
    $dbuser="root";
    $dbpass="Mein Passwort";


    if(!empty($_POST['button']))
    {
    $vorname = $_POST['vorname'];
    $nachname = $_POST['nachname'];
    $kdnr = $_POST['kdnr'];


    $conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
    if ($conID)
    {
    mysql_select_db( $db_name, $conID );
    }


    mysql_query("INSERT INTO kunden(id,vorname,nachname,kdnr)VALUES('$vorname','$nachname','$kdnr')") or die(mysql_error());
    }
    ?>
    <html>


    <head>
    <meta http-equiv="Content-Language" content="tr">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
    <title>Daten in MySQL schreiben</title>
    </head>


    <body>


    <p>Bitte tragen Sie unten ihre Daten ein!<br>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Vorname<input type="text" name="vorname" size="20"><br>
    Nachname<input type="text" name="nachname" size="20"><br>
    Kundennummer<input type="text" name="kdnr" size="20"></p>
    <p><input type="submit" value="Absenden" name="button"></p>
    </form>
    <p>&nbsp;</p>
    </body>
    </html>

  • habe gerade noch was geändert.
    mysql_query("INSERT INTO kunden(id,vorname etc...


    dort das 'id' auch gelöscht. so.

  • Da hast Du es doch
    Zähle man die Anzahl der Felder in der DB und dann die Anzahl der zu schreibenden Felder ... genau 'id' gibt es nicht.


    Nun kann man sie weg lassen, besser aber ein feld id mit
    `id` int(10) NOT NULL auto_increment
    erstellen und dieses wird dann von mySQL selber gefüllt.
    Vorteil: Die Datensätze können einmalig identifiziert werden.

  • Liebe Leute Danke! Aber ich komme so nicht wirklich an eine Lösung.
    Könnte Ihr mir mal eine Schablone aufzeigen, weil ich gerade hyperventiliere. Will gerne nochmals 2. Std. Zeit investieren und von mir aus alles neu programmieren. Die Tabbelenstruktur und das Script. Diese Sache zum laufen zu bringen hat mich sehr viel Zeit gekostet. Das recheerieren etc. Einfach İdee von mir war nur eben Name, Vorname und Kundennummer in einer Datenbank zu speichern. Falls es vieleicht schonmal so eine fertige Schablone gibt würde ich sie gerne ausprobieren. Die Schablone im TP Forum mit den Checkboxen und Führerschein JA/Nein und Radiobutton hatte ich schonmal zum laufen gebracht. Aber wıe schon gesagt als ich es nach meinen Wünschen leicht abändern wollte lief gar nichts mehr. Mensch was wäre ich froh wenn das mit meiner Idee mal funktionieren würde. Ich habe leider immer nur wenig Zeit für mein Hobby.

  • Du solltest nun wirklich mal aufmerksamer programmieren.
    Schau Dir mal die Vars zur DB an und dann mal den Verbindungsaufbau.
    $dbhost != $db_host


    Weiterhin solltest Du Dir die Tutorials echt mal durchlesen.


    Hier nun Dein Problemkind


    Code
    1. CREATE TABLE `tp` (
    2. `id` int(10) NOT NULL auto_increment,
    3. `vorname` varchar(255) NOT NULL,
    4. `nachname` varchar(255) NOT NULL,
    5. `kdnr` int(10) NOT NULL,
    6. PRIMARY KEY (`id`),
    7. KEY `nachname` (`nachname`)
    8. )


  • Danke vielmals webcreate! Es funktioniert! Ich fass es nicht! Ich danke Euch allen so sehr!!!!!!!!!!!!!!!!!!!!! SO SEHR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • Wenn man es dann auch noch sicher haben will, sollte man die übergebenen Formulardaten mit [phpfunction]mysql_real_escape_string[/phpfunction] "entschärfen", damit die Gefahr von SQL-Injections auf ein Minimum reduziert wird.

    "Beißen ist wie küssen. Nur dass einer gewinnt!"
    - TARDIS