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
CherryBomb
Bei mir kommt immer das wenn ich was eintragen willParse error: syntax error, unexpected T_VARIABLE in /usr/export/www/vhosts/funnetwork/hosting/heartboom/Version2/2/Eintragen.php on line 20