Eingeweidemann
Mitglied
Hall liebe Tutorials Community!
Ich habe nicht viel Erfahrung mit PHP, habe gerade mal das Quakenet Tutorial durchgemacht. Dann kam ich auf die Idee meine eigene "Blog Software" zuschreiben, mit dem was ich dort gelernt habe. Leider werden nun aber die Kommentare seltsam oft angezeigt. Bei 2 Einträgen im Blog waren alle Kommentare doppelt. Bei 3 Einträgen, waren alle Kommentare 4fach und bei vier Einträgen werden jetzt alle Kommentare 5mal angezeigt, in der Datenbank sind sie nur einmal. Anschauen kann man sich das ganze unter http://blog.psoke.de . Ich poste jetzt hier den PHP Code und hoffe ihr könnt mir helfen.
Das ist die "blog" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog.png
Das ist die "blog_comments" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog_comments.png
Ich habe nicht viel Erfahrung mit PHP, habe gerade mal das Quakenet Tutorial durchgemacht. Dann kam ich auf die Idee meine eigene "Blog Software" zuschreiben, mit dem was ich dort gelernt habe. Leider werden nun aber die Kommentare seltsam oft angezeigt. Bei 2 Einträgen im Blog waren alle Kommentare doppelt. Bei 3 Einträgen, waren alle Kommentare 4fach und bei vier Einträgen werden jetzt alle Kommentare 5mal angezeigt, in der Datenbank sind sie nur einmal. Anschauen kann man sich das ganze unter http://blog.psoke.de . Ich poste jetzt hier den PHP Code und hoffe ihr könnt mir helfen.
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
readfile('general/header1.html');
echo "AKTUELLES / PS0KE POST - Philipp Stephans Weblog";
readfile('general/header2.html');
echo "<h1>AKTUELLES</h1>";
$db = @new MySQLi(XXX);
if (mysqli_connect_errno()) {
die('Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error());
}
$entries = 'SELECT
ID,
Headline,
Content,
Date
FROM
blog
WHERE
Category = "Aktuelles"
ORDER BY Date DESC';
$entryresult = $db->query($entries);
if (!$entryresult) {
die('Der Query konnte nicht ausgeführt werden: '.$db->error);
}
if ($entryresult->num_rows) {
while ($row = $entryresult->fetch_assoc()) {
$ID = ($row['ID']);
echo "<!-- ID: ".$ID." -->\n";
echo "<hr>\n";
echo "<h2>".($row['Headline'])."</h2>\n";
echo "\t<div class=\"text\">\n";
echo ($row['Content'])."\n";
echo "\t</div>\n";
echo "\t\t<div class=\"footline\">POSTET ON ".($row['Date'])." | <a href=\"singleentry.php?id=".$ID."\">PERMA LINK</a> | <a href=\"javascript:show('comments_".$ID."')\">COMMENTS</a></div>\n";
echo "\t\t\t<div id=\"comments_".$ID."\" class=\"comments\" style=\"display:none;\">\n";
$comments = "SELECT
blog_comments.author,
blog_comments.content,
blog_comments.date,
url
FROM
blog,
blog_comments
WHERE
blog_comments.visible = \"1\"
AND blog_comments.entry_ID = \"".$ID."\"";
$commentresult = $db->query($comments);
if (!$commentresult) {
die('Der Query konnte nicht ausgeführt werden: '.$db->error);
}
if ($commentresult->num_rows) {
while ($row = $commentresult->fetch_assoc()) {
echo "\t\t\t\t<a href=\"http://".($row['url'])."\" target=\"_blank\"><h3>".($row['author'])."</h3></a>\n";
echo "\t\t\t\t<div class=\"comment_text\">\n";
echo ($row['content']);
echo "\t\t\t\t</div>\n";
echo "\t\t\t\t<div class=\"comment_footline\">POSTET ON ".($row['date'])."</div>\n";
}
}
else {
echo "Keine Kommentare. Posten Sie einen Kommentar!";
}
echo "\t\t\t\t<br><input type=\"button\" id=\"showformular_".$ID."\" value=\"Kommentar Schreiben\" onClick=\"javascript:show('postcomment_".$ID."');hide('showformular_".$ID."')\">\n";
echo "\t\t\t\t\t<form action=\"postcomment.php\" method=\"post\" id=\"postcomment_".$ID."\" style=\"display:none;\">\n";
echo "\t\t\t\t\t\t<input type=\"button\" id=\"hideformular_".$ID."\" value=\"Ausblenden\" onClick=\"javascript:show('showformular_".$ID."');hide('postcomment_".$ID."')\"><br><br>\n";
echo "\t\t\t\t\t\t*Name:<br><input type=\"text\" name=\"author\"><br><br>\n";
echo "\t\t\t\t\t\tWebsite:<br><input type=\"text\" name=\"site\">(ohne http://, mit www.)<br><br>\n";
echo "\t\t\t\t\t\t*E-Mail-Adresse:<br><input type=\"text\" name=\"mail\">(Wird nicht angezeigt)<br><br>\n";
echo "\t\t\t\t\t\t*Text:<br><textarea name=\"content\" rows=\"6\" cols=\"40\"></textarea><br><br>\n";
echo "\t\t\t\t\t\t*Was ist 9 + 3: <input type=\"text\" name=\"captcha\"><br><br>\n";
echo "\t\t\t\t\t\t<input type=\"hidden\" name=\"entryID\" value=\"".$ID."\">\n";
echo "\t\t\t\t\t\t<input type=\"submit\" name=\"formaction\" value=\"Eintragen\">\n";
echo "\t\t\t\t\t\t<input type=\"reset\" name=\"formaction\" value=\"Zurück setzen\">\n";
echo "\t\t\t\t\t</form>\n";
echo "\t\t\t</div>\n";
echo "<!-- / ID: ".$ID." -->\n\n";
}
}
else {
echo "<h2>Keine Einträge;</h2>\n";
echo "\t<div class=\"text\">\n";
echo "Es wurden keine Einträge gefunden.\n";
echo "\t</div>\n";
}
readfile('general/footer.html');
?>
Das ist die "blog" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog.png
Das ist die "blog_comments" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog_comments.png
Zuletzt bearbeitet: