Mit php Formular datensätze in Mysql datenbank einfügen

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

  • Mit php Formular datensätze in Mysql datenbank einfügen

    Hallo leute erstmal sntschuldige ich mich wegen diversen rechtschreibfehlern.
    ich habe ein problem.
    UNZWAR.

    ich habe mir mal ei paar tutorials durchgelesen und einen code zusammengefügt der mir keine fehlermeldung anzeigt aber auch keine neuen datensätze in die datenbank einfügt aber der code der mir Datensätze anzeigen soll funktioniert fehlerfrei also kann es nicht an den datenbankrechten liegen.

    Ich arbeite mit Xampp, Adobe dreamweaver CS5, und firefox

    hier unten jetzt meine 2 codes

    PHP-Code:
    <html>
    <head>
    <?php
       
    if ($gesendet)
       {
          
    $db mysql_connect('localhost''root''');

          
    $sqlab "insert personen";
          
    $sqlab .= "(name, vorname, personalnummer,";
          
    $sqlab .= " gehalt, geburtstag) values ";
          
    $sqlab .= "('$na', '$vn', $pn$ge, '$gt')";

          
    mysql_db_query("firma"$sqlab);

          
    $num mysql_affected_rows();
          if (
    $num>0)
             echo 
    "Es wurde 1 Datensatz hinzugefügt<p>";
          else
          {
             echo 
    "Es ist ein Fehler aufgetreten, ";
             echo 
    "es wurde kein Datensatz hinzugefügt<p>";
          }
          
    mysql_close($db);
       }
    ?>
    </head>

    <body>
    Geben Sie einen vollständigen Datensatz ein und senden Sie das 
    Formular ab:
    <form action = "Formular.php" method = "post">
        <input name="na"> Name<p>
        <input name="vn"> Vorname<p>
        <input name="pn"> Personalnummer (eine ganze Zahl)<p>
        <input name="ge"> Gehalt (Nachkommastellen mit Punkt)<p>
        <input name="gt">
                     Geburtsdatum (in der Form JJJJ-MM-TT)<p>
        <input type="submit" name="gesendet">
        <input type="reset">
    </form>

    Alle Datensätze <a href="Abfrage.php">anzeigen</a>
    </body>
    </html>
    und hier der abfrage code
    PHP-Code:
    <html>
    <body>
    <?php
       $db 
    mysql_connect("localhost""root","" );
       
    $res mysql_db_query("firma""select * from personen");
       
    $num mysql_num_rows($res);

       
    // Tabellenbeginn
       
    echo "<table border>";

       
    // Überschrift
       
    echo "<tr> <td>Lfd.Nr.</td> <td>Name</td>";
       echo 
    "<td>Vorname</td> <td>Personalnummer</td>";
       echo 
    "<td>Gehalt</td> <td>Geburtstag</td> </tr>";

       for (
    $i=0$i<$num$i++)
       {
          
    $nn mysql_result($res$i"name");
          
    $vn mysql_result($res$i"vorname");
          
    $pn mysql_result($res$i"personalnummer");
          
    $ge mysql_result($res$i"gehalt");
          
    $gt mysql_result($res$i"geburtstag");
          
    $lf $i 1;

          
    // Tabellenzeile mit -zellen
          
    echo "<tr> <td>$lf</td> <td>$nn</td> <td>$vn</td>";
          echo 
    "<td>$pn</td> <td>$ge</td> <td>$gt</td> </tr>";
       }

       
    // Tabellenende
       
    echo "</table>";

       
    mysql_close($db);
    ?>
    </body>
    </html>
    der letzde code funktioniert einwandfrei nur der code wo ich datensätze einfügen kann nicht

    könnt ihr mir vielleicht den code korregieren und mir danach sagen wo der fehler war?
    ich bin euch zutiefst dankbar

    MFG

    Vardi

  • #2
    Hi.

    Dir scheinen einige Basics zu fehlen. Du kannst z.B. Werte aus einem Formular nicht mit[FONT=monospace] $na einfach abfragen, sondern musst dafür $_POST["na"][/FONT][COLOR=#000000][COLOR=#CC0000] [COLOR=Black]nutzen. Schau Dir mal ein "Affenformular" an.
    Zudem ist mysql_db_query auch nicht
    mehr aktuelle, nutze lieber mysql_query (siehe php.net).

    mfg streuner
    [/COLOR][/COLOR][/COLOR]
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Und verwende mysql_real_escape_string() um die Werte im Query zu maskieren. SQL-Injections sind eine der am häufigsten ausgenutzten und gefährlichsten Sicherheitslücken.

      Kommentar


      • #4
        Hey erstmal danke an euch beiden.

        ein großes problem besteht nun das ich ja den code von einem tutorial gelernt habe und wenn ihr beide mir die richtigen sachen nennt weiß ich nicht wo hin damit und wie ich es machen soll ich war jetzt auf php.net doch ich bin jetzt ein wenig durcheinander gibt es kein tutorial das es mir logisch und auf deutsch erklärt wie ich formulare mit php und mysql verbinde usw?

        danke nochmals für eure hilfe

        Kommentar


        • #5
          Ein älterer Herr aus dem Forum hier, hat da was ganz nettes auf seiner Homepage:

          PHP - Einleitung

          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


          • #6
            hey danke also bis hierhin bin ich dank deines linkes gekommen jetzt hoffe ich das es richtig ist und hoffe auf noch einen link um es zu verfollständigen
            PHP-Code:
            <?php
              

            $db 
            mysql_connect('localhost','benutzer','passwort');
            mysql_select_db('meine Datenbank',$db) or die (mysql_error("Datenbank nicht Gefunden"));
            $result mysql_query('SELECT * FROM Meine Tabelle');

            ?>
            so ich weiß ich nerfe aber irgendwie muss mann ja anfangen
            jetzt brauchte ich ja eigendlich noch ein formular
            PHP-Code:
            <body>
            Geben Sie einen vollständigen Datensatz ein und senden Sie das 
            Formular ab
            :
            <
            form action "Formular.php" method "post">
                <
            input name="na"Name<p>
                <
            input name="vn"Vorname<p>
                <
            input name="pn"Personalnummer (eine ganze Zahl)<p>
                <
            input name="ge"Gehalt (Nachkommastellen mit Punkt)<p>
                <
            input name="gt">
                             
            Geburtsdatum (in der Form JJJJ-MM-TT)<p>
                <
            input type="submit" name="gesendet">
                <
            input type="reset">
            </
            form
            so wie mache ich das jetzt das php überprüft ob alle felder eingetragen sind und die eingetragenen felder in die tabelle einfügt ??

            danke schonmal

            Kommentar


            • #7
              Du kannst doch z.B. mit if $_POST["meinInputFeld"] <> "" prüfen (oder mit isset()), ob ein Wert drinsteht. Wie du einträgst, ist dasselbe Prinzip, wie beim auslesen. Insert Statement aus den POSt Variablen bauen und mit mysql_query ausführen. Wie oben bereits erwähnt, SQL Injection beachten!

              mfg streuner
              Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
              der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

              "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

              Kommentar


              • #8
                Also ich hab dir den Link nicht gepostet, damit du dir da schnell mal was in 15 Minuten gedankenlos rauskopierst. Kropff hat sich bei den Tutorials ziemlich viel Mühe gegeben und du solltest dir mindestens ebensoviel Mühe geben, das alles zu lesen und auch zu verstehen - das geht bei deinem momentanen Stand keinesfalls in 15 Minuten!

                Dir fehlt es, wie schon vorher gesagt wurde, noch an absoluten Basics. Die verlinkte Seite enthält vieles, wenn nicht alles, was du brauchst. Häng dich rein.
                Zuletzt geändert von Quetschi; 12.01.2011, 13:33.
                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


                • #9
                  jaaaaa ich häng mich doch schon rein nur mein problem ist das ich durcheinander komme ich habe jetzt insgesammt 3 tutorial vor mir liegen jeder sagt mir ne andere methode aber keiner sagt mir o richtig wie ich etwas machen soll

                  gewisse sachen weiß ich ja schon zwar nicht viel aber einiges was in den tutorials steht den anfang und wie gesagt der rest wird 3 mal anders beschireben ich hoffe ihr alle könnt mich verstehen wenn nicht hier mal was

                  also wenn ich mich mit einer datenbank verbinden will steht auf PHP-Kurs.com - PHP lernen und MySQL Tutorial mit vielen Beispielen

                  ich muss eine datei anlegen
                  PHP-Code:
                  <?php
                  // die Konstanten auslagern in eigene Datei
                  // die dann per require_once ('konfiguration.php'); 
                  // geladen wird.

                  // Damit alle Fehler angezeigt werden
                  error_reporting(E_ALL);

                  // Zum Aufbau der Verbindung zur Datenbank
                  // die Daten erhalten Sie von Ihrem Provider
                  define 'MYSQL_HOST',      'localhost' );

                  // bei XAMPP ist der MYSQL_Benutzer: root
                  define 'MYSQL_BENUTZER',  '' );
                  define 'MYSQL_KENNWORT',  '' );
                  // für unser Bsp. nennen wir die DB adressverwaltung
                  define 'MYSQL_DATENBANK''adressverwaltung' );

                  damit der code jetzt unten sich mit der datei verbinden kann
                  [PHP]<?php
                  require_once ('konfiguration.php');
                  $db_link 
                    
                  mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT);
                  ?>
                  ?>
                  [/PHP]

                  um mir zugriff auf die datenbank zu erlauben
                  PHP-Code:
                  <?php
                  error_reporting
                  (E_ALL);

                  // Zum Aufbau der Verbindung zur Datenbank
                  define 'MYSQL_HOST',      'localhost' );
                  define 'MYSQL_BENUTZER',  '' );
                  define 'MYSQL_KENNWORT',  '' );
                  define 'MYSQL_DATENBANK''adressverwaltung' );

                  $db_link mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT);

                  if ( 
                  $db_link )
                  {
                      echo 
                  'Verbindung erfolgreich: ';
                      echo 
                  $db_link;
                  }
                  else
                  {
                      
                  // hier sollte dann später dem Programmierer eine
                      // E-Mail mit dem Problem zukommen gelassen werden
                      
                  die('keine Verbindung möglich: ' mysql_error());
                  }
                  mysql_close($db_link );
                  ?>
                  und dann muss ich ja noch das eintragungformular machen??!?!?!??!

                  das ist alles zum verrückt werden und soooooooooo umständlich beschrieben

                  und bei euren tutorials wird vieles ausgelassen was in den anderen tutorialst steht aber da werden wiederum andere sachen ausgelassen ich verde langsam verrückt hier ich hoffe ich nerve euch nicht danke schonmal

                  freue mich auf eure antwort

                  Kommentar


                  • #10
                    Dann leg halt mal die Tutorials weg, kauf dir ein (aktuelles) Buch und arbeite es ein paar Wochen durch.

                    Kommentar


                    • #11
                      und was währe deiner meinung nach ein aktuelles buch, was alle themen erklärt also von php in html und umgekehrt bis sql verbindung usw?
                      wonach ich nach dem lernen sagen kann ich kann ohne hilfe does schreiben ?

                      ich habe angst da sich mir ein buch kaufe das dieses buch mich noch mehr durcheinander bringt und da eh nicht alles drinsteht .

                      danke für deine hilfe

                      Kommentar


                      • #12
                        soooo da bin ich wieder

                        bin mir dem tutorial schon sehr weit gekommen
                        nun stellen sich ein paar fragen auf

                        unzwar:

                        ich habe jetzt nicht den unterschied zwichen
                        PHP-Code:
                        //db_data.inc.php
                        <?php
                          
                        // lokale Zugangsdaten zu MySQL
                          
                        $user 'root';
                          
                        $host 'localhost';
                          
                        $password 'blabla';
                          
                        $database 'meine_test_db';
                        ?>

                        //index.php
                        <?php
                          
                        include ('db_data.inc.php');
                        ?>
                        und

                        PHP-Code:
                        ?php
                          $db 
                        mysql_connect('localhost','benutzer','passwort');
                        ?> 
                        verstanden
                        sind die beiden nicht die gleichen?
                        und wenn nicht welche muss angewandt werden und wofür ist das andere da ich danke für eure hilfe

                        Kommentar


                        • #13
                          so ich habe jetzt was fertig gemacht aber es will nicht so ganz
                          PHP-Code:
                          <?php
                          if ($gesendet)
                          $db mysql_connect('localhost','root','');
                          mysql_select_db('firma',$db);
                          $result mysql_query("firma"$sqlab);
                          $_POST["vorname"];
                          $_POST["nachname"];
                          $_POST["personalnummer"];
                          $_POST["gehalt"];
                          $_POST["geburtstag"];

                          $num mysql_affected_rows();
                                if (
                          $num>0)
                                   echo 
                          "Es wurde 1 Datensatz hinzugefügt<p>";
                                else
                                {
                                   echo 
                          "Es ist ein Fehler aufgetreten, ";
                                   }
                                   
                          mysql_close($db);




                          ?>
                          <body>
                          Geben Sie einen vollständigen Datensatz ein und senden Sie das 
                          Formular ab:
                          <form action = "Formular.php" method = "post">
                              <input name="name"> Name<p>
                              <input name="vorname"> Vorname<p>
                              <input name="personalnummer"> Personalnummer (eine ganze Zahl)<p>
                              <input name="gehalt"> Gehalt (Nachkommastellen mit Punkt)<p>
                              <input name="geburtstag">
                                           Geburtsdatum (in der Form JJJJ-MM-TT)<p>
                              <input type="submit" name="gesendet">
                              <input type="reset">
                          </form>
                          und hier die fehlermeldung
                          [COLOR=#000000][FONT=Times New Roman][FONT=Times New Roman]Warning: mysql_select_db() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 4

                          Warning: mysql_query() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 5

                          Warning: mysql_affected_rows() [function.mysql-affected-rows]: Access denied for user 'ODBC'@'localhost' (using password: NO) inD:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 12

                          Warning: mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established inD:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 12
                          Es ist ein Fehler aufgetreten,
                          Warning: mysql_close() expects parameter 1 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 19[/FONT][/FONT][/COLOR]

                          ich weiß ich neve habe aber fortschritte gemacht
                          ich danke für eure hilfe

                          Kommentar


                          • #14
                            $db ist keine Resource, weil mysql_connect() fehlschlägt, weil es sich mit den übergebenen Parametern nicht mit einem Datenbankserver verbinden kann.

                            Das solltest du aber wirklich selbst herausfinden können.

                            Kommentar


                            • #15
                              jetzt komm ich durcheinander

                              aber wenn ich das so mache
                              PHP-Code:
                              <html>
                              <head>
                              <?php
                              if ($gesendet)
                              $link mysql_connect('localhost','root','');
                              if (!
                              $link) {
                                 echo(
                              'Verbindung'.mysql_error());

                              mysql_select_db('firma'$link);
                              $result mysql_query("firma"$sqlab);
                              $_POST["vorname"];
                              $_POST["nachname"];
                              $_POST["personalnummer"];
                              $_POST["gehalt"];
                              $_POST["geburtstag"];

                              $num mysql_affected_rows();
                                    if (
                              $num>0)
                                       echo 
                              "Es wurde 1 Datensatz hinzugefügt";
                                    else
                                    {
                                       echo 
                              "Es ist ein Fehler aufgetreten,";
                                       }
                                       
                              mysql_close($db);
                              }
                              ?>
                              </head>

                              <body>
                              Geben Sie einen vollständigen Datensatz ein und senden Sie das 
                              Formular ab:
                              <form action = "Formular.php" method = "post">
                                  <input name="name"> Name<p>
                                  <input name="vorname"> Vorname<p>
                                  <input name="personalnummer"> Personalnummer (eine ganze Zahl)<p>
                                  <input name="gehalt"> Gehalt (Nachkommastellen mit Punkt)<p>
                                  <input name="geburtstag">
                                               Geburtsdatum (in der Form JJJJ-MM-TT)<p>
                                  <input type="submit" name="gesendet">
                                  <input type="reset">
                              </form>
                              </body>
                              </html>
                              kommt dieser fehler
                              [COLOR=#000000][FONT=Times New Roman][FONT=Times New Roman]Verbindung
                              Warning: mysql_select_db() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 9

                              Warning: mysql_query() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 10

                              Warning: mysql_affected_rows() [function.mysql-affected-rows]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 17

                              Warning: mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established inD:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 17
                              Es ist ein Fehler aufgetreten,
                              Warning: mysql_close() expects parameter 1 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 24[/FONT][/FONT][/COLOR]
                              leuteeeee hilft mir mal ich dreh langsam am rad

                              danke im vorraus

                              Kommentar

                              Lädt...
                              X