Fehler beim Eintragen in MySQL Datenbank?

Martys

Erfahrenes Mitglied
Hallo,

mache gerade meine ersten Gehversuche mit PHP im Zusammenspiel mit MySQL. Bis jetzt klappte auch alles soweit ganz gut.

Habe mir einen Admin-Bereich bebaut (passwortgeschütztes Verzeichnis) aus dem ich die Einträge des Gästebuchs bearbeiten kann. Nun möchte ich aber auch von dort News-Beiträge verfassen können.

Nur irgendwie werden die Eingaben nicht in die Datenbank geschrieben. Ich habe auch keine Ahnung, wo der Fehler liegen könnte, da ich es genauso wie beim Gästebuch gemacht habe, welches funktioniert.

Hier mal der Code zum Eintragen der News:

news_add.php (wird in die index.php includiert, im passwortgeschützten Verzeichnis)

PHP:
<?php
if($_POST['topic'] == "newpost"){
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$headline = $_REQUEST['headline'];
$nachricht = $_REQUEST['text'];
// Wandle Zeilenumbrüche um
$nachricht = ereg_replace( "\n", "<br />", $nachricht);
// ermittle Datum und Uhrzeit
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$zeit = date("H:i:s",$timestamp);

// Schreibt Einträge
// Verbindung zur Datenbank herstellen
include ("../dbconnect.php");
// Datenbank wählen
mysql_select_db($db, $dbc) or die ("Die Datenbank existiert nicht");
$eintrag = "INSERT INTO news (name, email, headline, nachricht, datum, zeit) VALUES ('$name', '$email', '$headline', '$nachricht', '$datum', '$zeit')";
$eintragen = mysql_query($eintrag);

// ENDE
echo '<p class="normal">Vielen Dank für den Eintrag, '.$name.'!</p><p class="normal"><a href="../index.php?section=news">&raquo; Zu den Einträgen</a></p>';
mysql_close ($dbc);
}
else {
echo '<form action="index.php?do=addnews&amp;topic=newpost" method="post" class="gbook">';
echo "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\">";
echo "<tr><td>Name:</td><td>&nbsp;</td><td><input name=\"name\" type=\"text\" class=\"gbookfeld\" /></td></tr>";
echo "<tr><td>eMail:</td><td>&nbsp;</td><td><input name=\"email\" type=\"text\" class=\"gbookfeld\" /></td></tr>";
echo "<tr><td>Headline:</td><td>&nbsp;</td><td><input name=\"headline\" type=\"text\" class=\"gbookfeld\" /></td></tr>";
echo "<tr><td>Text:</td><td>&nbsp;</td><td><textarea name=\"text\" cols=\"10\" rows=\"10\" class=\"gbookfeld\"></textarea></td></tr>";
echo "<tr><td>&nbsp;</td><td>&nbsp;</td><td><input name=\"send\" value=\"Abschicken\" type=\"submit\" class=\"bestellbutton\" />&nbsp;&nbsp;<input name=\"reset\" value=\"Löschen\" type=\"reset\" class=\"bestellbutton\" /></td></tr>";
echo "</table></form>";
}
?>

Danke schon mal für Eure Hilfe

Martys
 
Hallo,
danke für Deine Antwort, aber sowohl

PHP:
if($_POST['topic'] == "newpost")

als auch

PHP:
if($_GET['topic'] == "newpost")

funktioniert beides nicht.
 
Wenn das Formular im else-Abzweig gesendet wird, gibt es definitiv auch eine Variable $_GET['topic']
<form action="index.php?do=addnews&topic=newpost" method="post" class="gbook">';

Weitere Fehler kann ich nicht erkennen....da müsstest du dir mit mysql_error() Details ausgeben lassen.
 
Zuletzt bearbeitet:
Habe den Fehler entdeckt. Hatte vergessen das Feld "id" in de Datenbank auf auto_increment zu setzten. So wurde halt immer versucht, die ID 0 zu schreiben, die ja schon existierte.

Danke noch mal,

Martys
 
Zurück