Forumlar Daten in Datenbank einfügen

Black Angel

Mitglied
Hallo,
ich hoffe mir kann jemand helfen.
Ich weiß nicht wo der Fehler liegt und suche schon lange nach einer Lösung.
Das "Script" soll die Daten die im Formular angegeben werden in eine Datenbank einfügen.

PHP:
<?php
   if (isset($_POST["gesendet"]))
   {
            $mysqlhost="localhost"; // MySQL-Host angeben

    		$mysqluser="xxxx"; // MySQL-User angeben

    		$mysqlpwd="xxxx"; // Passwort angeben

		  	$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
			    
			$mysqldb="xxxx"; // Gewuenschte Datenbank angeben

    		mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");



      $sql = "INSERT INTO liste"
        . "(name, grund, eingetragen,"
        . " ablauf, von) VALUES "
        . "('" . $_POST["n"] . "', "
        . "'" . $_POST["g"] . "', "
        . $_POST["e"] . ", "
        . $_POST["a"] . ", "
        . "'" . $_POST["v"] . "')";

      mysql_query($sql);

      $num = mysql_affected_rows();
      if ($num>0)
      {
         echo "<p><font color='#00aa00'>";
         echo "Es wurde 1 Datensatz hinzugefügt";
         echo "</font></p>";
      }
      else
      {
         echo "<p><font color='#ff0000'>";
         echo "Es ist ein Fehler aufgetreten, ";
         echo "es wurde kein Datensatz hinzugefügt";
         echo "</font></p>";
      }
   }
?>
</head>
<body>
<p>Hier bitte <b>alles</b> Ausfüllen</p>
<form action = "eintragen.php" method = "post">
   <p>Name des Spielers:</p>
   <p><input name="n" /></p>
   <p>Grund:</p>
   <p><input name="g" /></p>
   <p>Eingetragen am:</p>
   <p><input name="e" /></p>
   <p>Ablauf am:</p>
   <p><input name="a" /></p>
   <p>Eingetragen von:</p>
   <p><input name="v" /></p>
   <p><input type="submit" name="gesendet" />
   <input type="reset" /></p>
</form>
 
Zuletzt bearbeitet:
Hallo und willkommen im Forum,

kannst du mal folgenden Code umbauen:

PHP:
$sql = "INSERT INTO liste"
        . "(name, grund, eingetragen,"
        . " ablauf, von) VALUES "
        . "('" . $_POST["n"] . "', "
        . "'" . $_POST["g"] . "', "
        . $_POST["e"] . ", "
        . $_POST["a"] . ", "
        . "'" . $_POST["v"] . "')";
      //                                Fehlerausgabe hinzugefügt
      mysql_query($sql) or die(mysql_error());

und außerdem folgende zwei Zeilen in das Script in die ersten Zeilen einbauen:

PHP:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);

Dann wird dir hoffentlich der Grund ausgegen, warum der INSERT fehlgeschlagen ist.
 
Abgesehen von deinem Problem würde ich immer überprüfen, ob der User was abgesendet hat,
Ansonsten kannst du auch leere Datensätze in die Tabelle bekommen.
 
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP/MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Okay, erstmal danke für die schnellen Antworten.
Das mit dem einfügen funktioniert jetzt.
Hab aber nochmal eine Frage (bin noch ein blutiger Anfänger in Sachen PHP etc.)
Wie kann ich alle Datensätze in der Tabelle auf einer Seite ausgeben?
Und wenn ein neuer hinzugefügt oder ein alter gelöscht wird dieser dann automatisch auf der Seite angezeigt bzw. gelöscht wird?

Schon mal danke im Voraus :)
 
Code? Was hast du bereits auf die Beine gestellt? Wo gibts Fehler? Ein "Ich bekomme es nicht hin" ist keine Fehlerbeschreibung oder Fragestellung.
 
Zurück