Hallo Community
Ich programmiere gerade eine Kommentarfunktion für einen (meinen) Blog. Ich möchte, dass jedem Kommentar eine ID zugeordnet wird, die weiter keine Aufgaben hat, als eine ID zu sein (d. h. den Beitrag / DB-Eintrag mit einer eindeutigen Nummer zu identifizieren). Soweit so gut. Jetzt bin ich auf ein merkwürdiges Problem gestossen: Entweder funktioniert das Hochzählen nicht (d. h. jeder Eintrag erhält dieselbe ID, was sinnlos ist), oder aber, wenn ich in der DB die ID-Spalte wie mancherorts empfohlen als Key und mit auto-increment belege, dann macht gleich der ganze Skript den Handtstand, d. h. es funktioniert nicht einmal mehr das Erstellen eines neuen DB-Eintrags [interessantes Subphänomen: Beim ersten Eintrag funktioniert alles]). Komisch ist, dass bei einem Gästebuchskript, den ich verwende (Eigenentwicklung nach Tutorial) alles mit praktisch (?) demselben Code funktioniert.
Soweit die hoffentlich halbwegs verständliche Problemschilderung, jetzt Code (der hoffentlich relevante Teil, sonst mehr oder anderes verlangen):
blog-kommentare-senden.php
Zum Vergleich der erwähnte, funktionierende Codeausschnitt aus dem Gästebuch-Sende-Script:
senden1.php
Was könnte da faul sein?
Noch zwei Bemerkungen: 1) *mysql wird bei nächstbester Gelegenheit durch das modernere *mysqli ersetzt; 2) Ich bin Anfänger mit gewissen selbst erworbenen Grundkenntnissen in PHP und MySQL.
Bin für alle Ratschläge dankbar!
Lg Xeno
Ich programmiere gerade eine Kommentarfunktion für einen (meinen) Blog. Ich möchte, dass jedem Kommentar eine ID zugeordnet wird, die weiter keine Aufgaben hat, als eine ID zu sein (d. h. den Beitrag / DB-Eintrag mit einer eindeutigen Nummer zu identifizieren). Soweit so gut. Jetzt bin ich auf ein merkwürdiges Problem gestossen: Entweder funktioniert das Hochzählen nicht (d. h. jeder Eintrag erhält dieselbe ID, was sinnlos ist), oder aber, wenn ich in der DB die ID-Spalte wie mancherorts empfohlen als Key und mit auto-increment belege, dann macht gleich der ganze Skript den Handtstand, d. h. es funktioniert nicht einmal mehr das Erstellen eines neuen DB-Eintrags [interessantes Subphänomen: Beim ersten Eintrag funktioniert alles]). Komisch ist, dass bei einem Gästebuchskript, den ich verwende (Eigenentwicklung nach Tutorial) alles mit praktisch (?) demselben Code funktioniert.
Soweit die hoffentlich halbwegs verständliche Problemschilderung, jetzt Code (der hoffentlich relevante Teil, sonst mehr oder anderes verlangen):
blog-kommentare-senden.php
PHP:
include ("mysql_connect.php");
$id =0;
$abfrage = "SELECT Comment_ID FROM kommentare ORDER BY Comment_ID DESC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$id = $row->id;
}
$id++;
$timestamp = time();
$datum = date("d.m.Y H:i:s", $timestamp);
$nachricht = str_replace("<", " ", $nachricht);
$nachricht = str_replace(">", " ", $nachricht);
$nachricht = str_replace("\r\n", "<br>", $nachricht);
$name = str_replace("<", " ", $name);
$name = str_replace(">", " ", $name);
$eintrag = "INSERT INTO kommentare (Comment_ID, Blog_ID, name, mail, text, timestamp) VALUES ('$id', '$Blog_ID', '$name', '$mail', '$nachricht', '$datum')";
$eintragen = mysql_query($eintrag);
if($eintragen == TRUE)
{
?>
<p>Dein Eintrag wurde abgeschickt.</p>
<p><a href="blog.php">Zurück zum Blog</a></p>
<?php
}
else
{
echo "Die Kommentarfunktion des Blogs funktioniert zur Zeit nicht. Entschuldigung!";
}
}
?>
Zum Vergleich der erwähnte, funktionierende Codeausschnitt aus dem Gästebuch-Sende-Script:
senden1.php
PHP:
include ("mysql_connect.php");
$id =0;
$abfrage = "SELECT id FROM guestbook ORDER BY id DESC LIMIT 1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$id = $row->id;
}
$id++;
$timestamp = time();
$zeit = date("H:i",$timestamp);
$datum = date("d.m.Y", $timestamp);
$nachricht = str_replace("<", " ", $nachricht);
$nachricht = str_replace(">", " ", $nachricht);
$nachricht = str_replace("\r\n", "<br>", $nachricht);
$name = str_replace("<", " ", $name);
$name = str_replace(">", " ", $name);
$eintrag = "INSERT INTO guestbook (id, name, mail, nachricht, datum, zeit) VALUES ('$id', '$name', '$mail', '$nachricht', '$datum', '$zeit')";
$eintragen = mysql_query($eintrag);
if($eintragen == TRUE)
{
?>
<p>Dein Eintrag wurde abgeschickt.</p>
<p><a href="gaestebuch.php">Zurück zum Gästebuch</a></p>
<?php
}
else
{
echo "Das Gästebuch funktioniert zur Zeit nicht. Entschuldigung!";
}
}
?>
Was könnte da faul sein?
Noch zwei Bemerkungen: 1) *mysql wird bei nächstbester Gelegenheit durch das modernere *mysqli ersetzt; 2) Ich bin Anfänger mit gewissen selbst erworbenen Grundkenntnissen in PHP und MySQL.
Bin für alle Ratschläge dankbar!
Lg Xeno