Gästebuch eintrag wird nicht mehr in die Datenbank geschrieben...

Code:
<?php
define ( 'MYSQL_HOST', 'localhost' );
define ( 'MYSQL_BENUTZER', 'homepagebesucher' );
define ( 'MYSQL_KENNWORT', 'xxx' );
define ( 'MYSQL_DATENBANK', 'homepageanwendungen' );

$db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( ! $db_link )
{
    // hier sollte dann später dem Programmierer eine
    // E-Mail mit dem Problem zukommen gelassen werden
    // die Fehlermeldung für den Programmierer sollte
    // das Problem ausgeben mit: mysql_error()
    die('keine Verbindung zur Zeit möglich - bitte später probieren ');
}

$db_sel = mysql_select_db( MYSQL_DATENBANK )
    or die("Auswahl der Datenbank fehlgeschlagen");

// SQL-Befehl für den Zugriff
$sql = "
    SELECT
        *
    FROM gaestebuch
    ORDER BY datum
";

// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
    die('Ungültige Abfrage: ' . mysql_error());
}


if($_POST["test"] == "1"){
	if ( $_POST['eintrag'] != "" )
	{
   	 echo "<h2>Eintrag gespeichert</h2>";


  	 //Eintrag SPEICHERN
	$sql = " INSERT INTO gaestebuch";
	$sql .= " SET ";
	$sql .= " name   ='". $_POST['name'] ."', ";
	$sql .= " datum  ='". date("Y-m-d H:i:s") ."', ";
	$sql .= " eintrag ='". $_POST['eintrag'] ."' ";
echo "<hr />SQL: $sql<hr />";
  	
} else { echo "fehler";}
} 


// Formular

echo "<center>";
echo "<form name=\"\" action=\"gb.php\" method=\"POST\" enctype=\"text/html\">";
echo "<input type=\"hidden\" name=\"test\" value=\"1\" />";
echo "<p>Ihr Name:<br />";
echo "<input type=\"text\" name=\"name\" value=\"\" size=\"50\" maxlength=\"150\" />";
echo "</p>";
echo "<p>Gästebucheintrag:<br />";
echo "<textarea name=\"eintrag\" rows=\"5\" cols=\"50\"></textarea>";
echo "</p>";

echo "<input type=\"Submit\" value=\"Senden >>\" />";
echo "</form>";




// Anzeige der Anzahl der Einträge
$anzahl_eintraege = mysql_num_rows($db_erg);
echo "<br><br><b><p>Anzahl der Gästebuch-Einträge bisher: $anzahl_eintraege </p></b>";

while ($daten = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
    // Aushabe der Daten
$eintragszahl = $daten['id'];
$from = $daten['name'];
$date = $daten['datum'];
$geschrieben = $daten['eintrag'];

if ($geschrieben == ""){
$geschrieben = "<center> --- </center>";
}


echo "<table border=\"1\" width=\"661\" height=\"163\">";
echo "<tr>";
echo "<td height=\"25\" width=\"123\"><b>Eintrag:</b> $eintragszahl</td>";
echo "<td height=\"25\" width=\"522\"><b>Von/Am:</b> \"$from\" / \"$date\"   (yyyy/mm/tt)</td>";
echo "</tr>";
echo "<tr>";
echo "<td height=\"128\" width=\"661\" colspan=\"2\">$geschrieben</td>";
echo "</tr>";
echo "</table>";


}

?>
</center>

Irgendwie kann ich keinen eintrag mehr machen, vorhin Funktionierte das noch. Wo liegt der Fehler?

---------
Code:
SQL: INSERT INTO gaestebuch SET name ='dfgdfgdfg', datum ='2009-03-04 23:06:16', eintrag ='dfgdfgdfg'

Wird aber angezeigt

-------------------------

jetzt hab ichs -.-

Code:
// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
    die('Ungültige Abfrage: ' . mysql_error());
}

gehört UNTER

Code:
if($_POST["test"] == "1"){
	if ( $_POST['eintrag'] != "" )
	{
   	 echo "<h2>Eintrag gespeichert</h2>";


  	 //Eintrag SPEICHERN
	$sql = " INSERT INTO gaestebuch";
	$sql .= " SET ";
	$sql .= " name   ='". $_POST['name'] ."', ";
	$sql .= " datum  ='". date("Y-m-d H:i:s") ."', ";
	$sql .= " eintrag ='". $_POST['eintrag'] ."' ";
echo "<hr />SQL: $sql<hr />";
  	
} else { echo "fehler";}
}


sry^^
 
auf den ersten Blick kann ich nix finden.
Was hast du denn als letztes dran gemacht, bevor es aufgegeben hat zu funktionieren?

und was sagt denn
PHP:
mysql_error();

und sehe ich das richtig, dass du beim SPEICHERN der Daten das Datum als STRING speicherst???

besser ist, du nimmst zum SPEICHERN einen timestamp und wandelst es bei der Ausgabe in für Menschen lesbare Strings um oder du nutzt direkt Datums-Datentypen.
Hat z.B. den Vorteil, dass man besser danach sortieren kann und dass man auch nach dem abspeichern noch beliebig festlegen kann, für welche Zeitzone das Beitrags-Datum angezeigt werden soll.
 
Ich hab doch die Lösung schon geschrieben oO.

Und das Datum wird gespeichert als YYYY-MM-DD HH:II:SS

Mit dirsem Script wird TT.MM.YYYY HH:II:SS
Code:
$date = str_split($date);
$jahr = $date[0].$date[1].$date[2].$date[3];
$monat = $date[5].$date[6];
$tag = $date[8].$date[9];
$stunden = $date[11].$date[12];
$minuten = $date[14].$date[15];
$sekunden = $date[17].$date[18];

Und Datum wird als DATETIME gespeichert.
 
Zurück
Oben