Daten für Tabelle

willytyp

Benutzer
Beiträge
10
Hallo,

brauche mal wieder eure Hilfe.

Ich habe in MySQL eine Datenbank (gaestebuch) erstellt.

Darin befindet sich eine Tabelle (gaeste) mit folgenden Spalten:

Ich hätte die Tabellenstruktur gerne als Bild beigefügt, wenn ich wüsste wie.

Also, folgende Spalten hat die Tabelle
id (Auto_increment), name (Varchar), datum (Timestamp), email (Varchar), ip (Varchar) und kommentar (Text).

Sie ist z.Zt. noch leer.

Wenn ich richtig gelesen habe, brauche ich bei id sowie datum und ip keine Daten eingeben,

da die automatisch generiert werden, oder?

Mit folgendem Programm möchte ich nun Daten eingeben, was mir allerdings nicht gelingt.

Wie ich es auch versuche, außer Fehlermeldungen bekomme ich keine Daten in die Datei.

Quelltext db_erzeugen:
Code:
<html>
<head>

<body>
<p>Geben Sie bitte einen vollständigen Datensatz ein<br />
und senden Sie das Formular ab:</p>

<form action = "gesendet.php" method = "post">
   <p><input name="name" /> name</p>
   <!--  <p><input name="datum" /> Datum</p>-->
   <p><input name="email" /> email</p>
   <p><input name="kommentar" /> kommentar</p> 
   <p><input type="submit" name="gesendet" />
   <input type="reset" /></p>
</form>

<p>Alle Datensätze <a href="db_tabelle.php">anzeigen</a></p>
</body>
</html>

und hier der Quellcode gesendet.php
Code:
<html
<head>

<body>
<?php  
  
   if (isset($_POST["gesendet"]))
   {
      $con = mysqli_connect("","root");
      mysqli_select_db($con, "gaestebuch");        /*Datenbank*/
    
      /*ip=$_SERVER["REMOTE_ADDR"]                /*IP ermitteln*/
      
      $sql = "insert gaeste"                     /*Tabelle*/
        . "(name,email,kommentar) values "        /*Spalte&uuml;berschriften*/          
        . "('" . $_POST["name"] . "', "            /*Zeichenkette mit Anfangsklammer*/      
        . "'" . $_POST["email"] . ", "            /*Zeichenkette*/      
        . "'" . $_POST["kommentar"] . "')";        /*Zeichenkette mit Endklammer*/

      mysqli_query($con, $sql);

      $num = mysqli_affected_rows($con);
      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>";
      }

      mysqli_close($con);
   }
?>

</head>
</body>
</html>

So habe ich es aus schlauen Büchern zusammengelesen und erstellt.
Allerdings werde ich irgendwo einen Fehler eingebaut haben.
Ich weiss nur nicht wo. Hat eine(r) von euch die rettende Lösung?

LG
willytyp
 
Werbung:
Mit der ID und dem Datum wird es in deinem Fall wohl klappen, bei der IP Spalte gibt es keinen Default Wert. Außerdem stehen alle Spalten auf NOT NULL, lassen also keine Leeren Eintrag zu. Das wird deine Fehler verursachen solange du nicht in jede Spalte auch einen Wert schreibst.
 
Hallo ukelele,
zunächst vielen Dank für deinen Tipp. Geklappt hat es jedoch nicht.
Ich habe mal , zu Testzwecken, alle Felder (bis auf id und datum) auf NULL gesetzt.
Das brachte auch nicht den gewünschten Erfolg.
Das Programm ruft zwar die Datei "gesendet.php" auf, macht dort aber gar nichts.
Soll heissen, ich bekomme keinen Hinweis auf einen Fehler oder auf eine erfogreiche
Speicherung.
Ich bin hier langsam am verzweifeln.

LG
Willytyp
 
Hallo akretschmer,
danke für den aussagekräftigen Hinweis!!!!!! Ja es ist erstaunlich einen solchen Hinweis zu bekommen.
Ich habe mal die komplette NULL Fehlerprüfung auskommentiert.
Dennoch bekomme ich keine Daten in die DB.
Also, mal ehrlich, viel gebracht hat mir deine Aussage nicht.
Einen Tipp, wie ich die DB füllen kann, hätte ich von einem Datenbank-Guru erwartet.
Schade, dass du nur Tipps für einen Neuling in Rätseln gibst.
Aber vermutlich bist du schon als Datenbank-Guru auf die Welt gekommen.

LG
willytyp
 
Dein Problem ist eher PHP, nicht die Datenbank. Deinen INSERT kannst du ja sehr leicht manuell gegen die Datenbank testen. Wenn der läuft, brauchst du einen PHP-Guru.
 
Werbung:
Ich habe mal die komplette NULL Fehlerprüfung auskommentiert.

Mit NULL Fehlerbehandlung meinte ich, daß Du keine Prüfung machst, ob Deine Anfragen an die DB erfolgreich waren.

Zwischen den folgenden Zeilen:

Code:
mysqli_query($con, $sql);

$num = mysqli_affected_rows($con);

solltest Du prüfen, ob der erste Befehl geklappt hat.
 
Zurück
Oben