Formulardaten in MySql-DB schreiben mit php
Daniel Meiers
- php
Hallo Zusammen!!
Versuche mich seit neustem ein wenig mit PHP und MySql Datenbanken und habe ein Problem das ich nicht so ganz verstehe...
Ich möchte aus einem Formular Werte in die eine Datenbank schreiben und anschließend auch irgendwie in Tabellenform wieder ausgeben (gedacht für ausbildungsberichte) Dazu habe ich habe ich eine Datenbank "test" angelegt sowie eine Tabelle namens
berichtsheft(tag tinyint, monat tinyint, jahr tinyint, name varchar(20), vorname varchar(20), bericht text)
manuelle eintragungen über mysql konsole bekomme ich mit insert into... auch hin.
nutze folgendes php-skript:
<?php
if ($HTTP_POST_VARS["submit"])
{
$link = mysql_connect("localhost","root","");
if(!$link)
{
echo "Keine Verbindung möglich";
}
$abfrage = "insert into berichtsheft (tag,monat,bericht) values(".$_POST["tag"].",".$_POST["monat"].",".$_POST["bericht"].");";
// echo $abfrage;
$fin = mysql_db_query("test",$abfrage,$link);
mysql_close();
}
else{
?>
<form action="<?php print $HTTP_SERVER_VARS["PHP_SELF"]; ?>"method="post">
<table>
<tr>
<td>Datum (DD/MM/JJJJ)</td>
<td></td>
</tr>
<tr>
<td><input type="text" name="tag" size="1" > /
<input type="text" name="monat" size="1" >/
<input type="text" name ="jahr" size="3" ></td>
<td></td>
</tr>
<tr>
<td>Name</td>
<td>Vorname</td>
</tr>
<tr>
<td><input type="text" name="name"></td>
<td><input type="text" name="vorname"></td>
</tr>
<tr>
<td>Bericht</td>
<td></td>
</tr>
<tr>
<td colspan="2"><textarea name="bericht" rows="10" cols="50"></textarea></td>
<td></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Eintragen" ></td>
<td></td>
</tr>
</table>
</form>
<?php } ?>
nun aber mein eigentliches Problem, Merkwürdigerweise funktioniert das eintragen in die DB wenn ich nur die Werte tag, monat, jahr eintrage jedoch nicht wenn ebenso name, vorname oder bericht mit eingetragen werden sollen....
bin für jede hilfe dankbar
Gruß
Daniel
berichtsheft(tag tinyint, monat tinyint, jahr tinyint, name varchar(20), vorname varchar(20), bericht text)
Warum zerlegst du das Datum in seine Bestandteile, MySQL bietet dir doch eine Fülle an Datums- und Zeittypen an?
nun aber mein eigentliches Problem
Du hast Probleme, neben denen das von dir genannte wie ein laues Sommerlüftchen weht:
http://www.php.net/manual/de/function.error-reporting.php
http://www.php.net/manual/de/language.variables.predefined.php (zu $_POST)
http://www.php.net/manual/de/security.database.sql-injection.php
http://www.php.net/manual/de/function.mysql-real-escape-string.php
Merkwürdigerweise funktioniert das eintragen in die DB wenn ich nur die Werte tag, monat, jahr eintrage jedoch nicht wenn ebenso name, vorname oder bericht mit eingetragen werden sollen....
Wie sehen denn die SQL-Statements dazu aus?
Siechfred
ok.... siehts so aus al hätte ich noch einiges zu lernen, hab (wie man warscheinlich merkt) erst vor kurzem mit php und mysql angefangen und kenne mich deswegen nicht so gut aus....
was meinst du mit SQL-Statements??? Ich glaube ich werd mich erstmal in die links einlesen die du mir gepostet hast!!
Gruß
was meinst du mit SQL-Statements?
Das, was bei dir in $abfrage steht.
Siechfred
da würd ich dir http://tut.php-q.net/ empfehlen von anfang an für anfänger, und vorallem fangen die auch mit so einfachen sachen an wie datenbank tabellen füllen usw..
ok.... siehts so aus al hätte ich noch einiges zu lernen, hab (wie man warscheinlich merkt) erst vor kurzem mit php und mysql angefangen und kenne mich deswegen nicht so gut aus....
was meinst du mit SQL-Statements??? Ich glaube ich werd mich erstmal in die links einlesen die du mir gepostet hast!!
Gruß