Daniel Meiers: Formulardaten in MySql-DB schreiben mit 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&ouml;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

  1. 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

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    1. 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ß

      1. was meinst du mit SQL-Statements?

        Das, was bei dir in $abfrage steht.

        Siechfred

        --
        Ich bin strenggenommen auch nur interessierter Laie. (molily)
      2. 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ß