Stefan: Eingabeformular für Mysqldatenbank

Mein php Script fügt zwar neue datensätze in meine datenbank ein, aber diese einträge sind dann leer.Mein Script sieht so aus:

$connID=mysql_connect($mysqlhost,$mysqluser,$mysqlpasswd) or
  die("konnte nicht verbinden");
mysql_select_db("xxx");//verbindung zur Datenbank

$sql = mysql_query("INSERT INTO DVD (Filmtyp,Titel,Laenge,Bemerkungen) VALUES ('$filmtyp','$titel','$laenge','$bemerkung')");

if($sql) {
echo"Ihre daten wurden gespeichert!!";}
else {
echo"Ihre daten wurden nicht gespeichert!!"; }

Wo könnte den hier ein fehler sein

  1. Hallo.

    Wo könnte den hier ein fehler sein

    Woher kommen die Daten $filmtyp usw.? Aus einem Formular? Dann solltest Du über $POst['filmtyp'] usw. draufzugreifen.

    Grüße aus Würzburg
    Julian

    --
    ss:) zu:{ ls:< fo:) de:< va:} ch:° n4:} rl:° br:> js:| ie:{ fl:( mo:)
    1. JA die daten kommen aus einen Formular. Danke für den Tipp werd es gleich versuchen!!!!

      mfg

      stefan

      (ponikau.de)

    2. Hi!

      ICh hab das mal so versucht nur da meckert der pc rum und gibtn feher aus.

      mfg stefan

      1. Hallo Stefan,

        ICh hab das mal so versucht nur da meckert der pc rum und gibtn feher aus.

        welchen Fehler? das Array heißt übrigends $_POST also $_POST['filmtyp'] - nicht $POst['filmtyp'].

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. Hallo Stefan,

          ICh hab das mal so versucht nur da meckert der pc rum und gibtn feher aus.
          welchen Fehler? das Array heißt übrigends $_POST also $_POST['filmtyp'] - nicht $POst['filmtyp'].

          Grüße aus Nürnberg
          Tobias

          Meinst du so :

          $sql = mysql_query("INSERT INTO DVD (Filmtyp,Titel,Laenge,Bemerkungen) VALUES ($_POST['filmtyp'],$_POST['titel'],$_POST['laenge'],$_POST['bemerkung'])");

          Wenn ich es no nehme bekomme ich

          Parse error: parse error, expecting `'('' in /srv/www/htdocs/ponikau.lokal/inserdb_dvd.php on line 18

          ab Zeile 18 steht
          [zeile 18]if($sql) {
          echo"Ihre daten wurden gespeichert!!";}
          else {
          echo"Ihre daten wurden nicht gespeichert!!"; }

          mfg stefan

          1. Hello,

            ich empfehle Dir dringend nochmal die Lektüre eines Tutorials. Da gibt es ein ganz witziges von http://tut.php-q.net

            Aber nicht nur lesen, sondern alle Beispiele auch aus dem Kopf nachmachen!

            $sql = "INSERT INTO DVD set ".
                   "Filmtyp = '".mysql_escape_string($_POST["filmtyp"])."',".
                   "Titel   = '".mysql_escape_string($_POST["titel"])."',".
                   "Laenge  = '".mysql_escape_string($_POST["laenge"])."',".
                   "Bemerkungen='".mysql_escape_string($_POST["bemerkung"])."'");

            $res = mysql_query($sql, $conID);

            if ($res)
            {
              echo "Ihre Daten wurden gespeichert.";
            }
            else
            {
              echo "Ihre Daten wurden nicht gespeichert!";
            }

            Es ist durchaus erlaubt, auch bei INSERT mit SET zu arbeiten.
            Das erspart gerade Anfängern viel Kummer.
            Und ruhig immer ALLE Werte in Häckchen übergeben. Das ist auch bei numerischen Werten erlaubt, nur NULL muss als Schlüsselwort ohne Häkchen im SQL-String stehen.
            Und auf keinen fall das Maskieren mit mysql_escape_string() vergessen. Wenn allerdings mygic_quotes_gpc() == true; dann muss man vorher die Backslashes von PHP wieder entfernen -> mysql_escape_string(strilslashes($_POST["xxx"]));

            Das musst Du da oben also ggf. noch einbauen!

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. ICh danke dir habe bei deinen script nur ein porblem!!!

              in der zeile

              "Bemerkungen='".mysql_escape_string($_POST["bemerkung"])."'");

              bekomme ich einen Parse error!!!

              mfg stefan

              1. Hallo Stefan,

                "Bemerkungen='".mysql_escape_string($_POST["bemerkung"])."'");

                die letzte Klammer ist zu viel.

                Grüße aus Nürnberg
                Tobias

                --
                Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
                1. Danke dir Tobias jetzt geht das Formular!!!!

                  mfg Stefan

                  www.ponikau.de

  2. Moin,

    »»('$filmtyp','$titel','$laenge','$bemerkung')");

    Versuche es mal so ('"$filmtyp"', usw....

    regds
    Mike

    1. Moin,

      »»('$filmtyp','$titel','$laenge','$bemerkung')");

      Versuche es mal so ('"$filmtyp"', usw....

      regds
      Mike

      Hi,

      meinst du so

      $sql = mysql_query("INSERT INTO DVD (Filmtyp,Titel,Laenge,Bemerkungen) VALUES ('"$filmtyp"','"$titel2"','"$laenge"','"$bemerkung"')");

      ????

      wenn ich das so nehme kommt parase error inder zeile!!!

      mfg stefan

      1. Moin,

        wenn ich das so nehme kommt parase error inder zeile!!!

        Ok, sorry. Bei mssql *kotz* funtzt das.

        Dann solltest Du tatsächlich erst mal testen, ob deine Variablen
        gefüllt sind, vor dem speichern.

        regds
        Mike

      2. Moin,

        meinst du so

        $sql = mysql_query("INSERT INTO DVD (Filmtyp,Titel,Laenge,Bemerkungen) VALUES ('"$filmtyp"','"$titel2"','"$laenge"','"$bemerkung"')");

        nee, eher so mit Punkten dazwischen
        $sql = mysql_query("INSERT INTO DVD (Filmtyp,Titel,Laenge,Bemerkungen) VALUES ('".$filmtyp."','".$titel2."','".$laenge."','".$bemerkung."')");

        Kalle