1x bewertet

Daten einfügen in Datenbank

von Fischstäbchen  |  17.02.2007 um 21:00 h
PHP Anwendungen
Typ: PHP Anwendungen
Stufe:Mittel
Im folgenden erläutere ich, wie man Daten per Formular in eine MySQL-Datenbank einträgt.

Zunächst braucht ihr nätürlich eine Datenbank und eine Tabelle, wie Delite in ihrem Tutorial bereits

erläutert hat: Eine Tabelle erstellen

Hier wird folgende verwendet

My-SQL Code:
CREATE TABLE `komisch` (

`id` INT( 55 ) UNSIGNED NOT NULL AUTO_INCREMENT ,

`name` VARCHAR( 255 ) NOT NULL ,

`ersteller` VARCHAR( 255 ) NOT NULL ,

`serie` VARCHAR( 255 ) NOT NULL ,

PRIMARY KEY ( `id` )

) TYPE = MYISAM ;




Und um sich den komplizierten Weg über die Datenbank direkt zu ersparen, gibt es Formulare, mit deren

Hilfe ihr Daten eintragen könnt. Doch zum direkten Eintragen später mehr.



Bitte erstellt hierfür eine .php-Datei (das ist derselbe Weg wie bei html-Dateien, nur die Endung ist

eine Andere):




<?php

# FORMULAR-FELDER

#

    
echo "<FORM action=\"Eintragen.php\" method=\"get\">";

 
#Link zur php-Datei, die eure Daten einträgt

    
echo "<table>";



    echo 
"<tr><td>Titel </td><td><INPUT type=\"text\" size=40
name=\"name\">

</td></tr>"
;

    echo 
"<tr><td>Ersteller </td><td><INPUT type=\"text\" size=40
name=\"ersteller\">

</td></tr>"
;

    echo 
"<tr><td>Serie </td><td><INPUT type=\"text\" size=40
name=\"serie\">

</td></tr>"
;



#

# DATENBANK-ZUGRIFF AUFRUFEN PER BUTTON

#



   
echo "<tr><td> </td><td> </td></tr></table><hr>";

   echo 
"<INPUT type=\"submit\" value=\"Abschicken\">";

   echo 
"</FORM>";





?>





Erklärung:

Wie oben vermerkt, wird zunächst ein Link zur php-Datei gesetzt, die eure Angaben später einträgt,

anschließend wird ein Table aufgebaut, indem die benötigten Formular-Felder zu finden sind: In diesem

Beispiel Titel, Ersteller & Serie.<br>

Es ist vollkommen egal, was ihr am Anfang schreibt vor das Formularfeld.

Wirklich wichtig ist dieser Teil:

<INPUT type=\"text\" size=40 name=\"name\">

"text\" = gibt an, dass es sich um einen Text handelt

size = Länge des Formulars (40 Zeichen in dem Fall)

"name\" = Hier kommt der Name eures Feldes in der Datenbank hin.



Das wiederholt ihr dann solange, bis ihr alle Felder, in die ihr per Formular, außer (!) der ID

(das passiert automatisch), etwas

eintragen möchtet.



Ob das ganze wie ihr in einem Table oder anders passieren soll, bleibt dabei euch überlassen.



Danach folgt die Erzeugung eines Buttons, mit dessen Hilfe ihr zur Datei Eintragen.php weiterleiten

könnt, die eure Daten dann einträgt.



Jetzt kommen wir zur Eintragen.php, in der die Daten dann auch wirklich in die Datenbank gelangen sollen.




<?php



#

# DATENBANK-ZUGRIFF

#



        
mysql_connect("localhost""LOGINNAME""PASSWORT");

     
$db="NAME DER DATENBANK"#Hier baut ihr eine Verbindung zur
Datenbank auf



    $sql 
="INSERT INTO `komisch` ( `id` , `name` , `ersteller`,
`serie`) VALUES (NULL,"
;

    
$sql $sql "'$_REQUEST[name]', '$_REQUEST[ersteller]',
'$_REQUEST[serie]');"
;





# Eintragen



    
$result=mysql_db_query($db,  $sql);





# Ueberpruefen



    
if (mysql_errno() == 0):

      echo 
"\nDatensatz erfolgreich eingetragen!";

    else:

      echo 
"Es ist leider ein Fehler aufgetreten "mysql_errno() .":
"
mysql_error();

      endif;

      
$hilf=mysql_insert_id();

      
mysql_close();



?>





Zunächst wird eine Verbindung zur Datenbank aufgebaut (Genaueres darüber steht hier). Anschließend werden die Werte bzw. Daten aus eurem Formular in die Felder der Tabelle

eingetragen.

Erklärung:

INSERT INTO `komisch` = bei "komisch" handelt es sich um den Namen der Tabelle, in die die Daten eingetragen

werden sollen.

Danach folgen die Felder wie id, name, ersteller, in die die Daten eingetragen werden, die ihr zuvor

eingegeben habt.

Darunter folgt das REQUEST, d.h. diese Daten werden dem Formular entnommen, d.h. dass die id nicht auftauchen

muss, da sie nicht im Formular stand.



Ihr müsst darauf achten, dass ihr nichts vergesst oder falsche Zeichen setzt, da ansonsten nichts

mehr funktioniert ^^



Ich denke, dass sich #Eintragen von selbst erklärt.

Aber danach folgt #Überprüfen, was mit if und else angibt, was passieren soll, wenn das Eintragen

funktioniert oder eben leider nicht.



if (mysql_errno() == 0):

echo "\nDatensatz erfolgreich eingetragen!";


gibt an, dass der Satz "Datensatz erfolgreich eingetragen!" ausgegeben wird, wenn der Eintrag funktioniert.

Ist das nicht der Fall, kommt es zu "else"

else:

echo "Es ist leider ein Fehler aufgetreten ". mysql_errno() .": ". mysql_error();

endif;

$hilf=mysql_insert_id();

mysql_close();


Dort wird dann angegeben, dass leider ein Fehler und welcher Fehler aufgetreten ist (also hat der Eintrag nicht

funktioniert)



Verstanden? Ansonsten:

Bei Fragen etc bitte eine Mail an Fischstaebchen@ride-my-10-inch.de oder per MSN: KanshinX@lycos.de



5 Kommentare




CherryBomb

Bei mir kommt immer das wenn ich was eintragen will
Parse error: syntax error, unexpected T_VARIABLE in /usr/export/www/vhosts/funnetwork/hosting/heartboom/Version2/2/Eintragen.php on line 20
am 08.12.2007 um 12:02 Uhr


CherryBomb

Bei mir kommt immer das wenn ich was eintragen will
Parse error: syntax error, unexpected T_VARIABLE in /usr/export/www/vhosts/funnetwork/hosting/heartboom/Version2/2/Eintragen.php on line 20
am 08.12.2007 um 12:06 Uhr


Bei mir auch...
am 01.03.2008 um 22:51 Uhr


Bee

bei mir klappts :) jetzt muss ich das nurnoch umbasteln können, dass ich statt der INSERT funktion eine UPDATE funktion hab^^
danke für das tut Smilie
am 24.01.2009 um 11:23 Uhr


Jimmy Allen

hi leute, also bei mir speichert er die eingegeben daten zwar ab aber einen fehler spuckt er mir trotzdem aus..

Deprecated: mysql_db_query() [function.mysql-db-query]: This function
is deprecated; use mysql_query() instead in
/Applications/XAMPP/xamppfiles/htdocs/php-lernen/Eintragen.php on line
16 Der Inhalt wurde erfolgreich eingetragen.

am 07.02.2010 um 00:44 Uhr