Webstatt.org - Community seit 2006 - 2012 (2024?)

Kommentarfunktion für Newssytem

Avatar user-284
27.04.2006 18:33

Hi.
Ich wüde gerne in der nächsten Zeit mein Newssystem ein wenig erweitern. Deswegen soll eine "kommentarfunktion" entstehen. Leider stehe ich schon bei der Logik etwas auf dem Schlauch. Also ich habe mir das so vorgestellt: Ich habe 3 Datein: eine auf der die news angezeigt werden (unter den news soll dann ein link zu einer show_comments.php stehen mit einer Bezeichnung zb "2 Kommentare"zwinkern. Diese existiert ja auch schon nur eben ohne Kommentarfunktion. user-158n gibt es eine comment_show.php die die Kommentare aus einer Datenbank liest (Die news sind nach einer Id geordnet und so wird jedes comment einer newsid zugeordnet. user-158n soll es noch eine add_comment.php geben, die Kommentare in die Datenbank schreibt. Leider sehe ich daei keinen Zusammenhang. Wie kriege ich meine news.php dazu automatisch eine link zu erstellen der die news id enthält? (zb http://www.r0b1n-art.de/?id=news_comments1) und wie kriege ich die show_comments.php dazu die richtigen news+kommentare auszugeben (jetzt kommt mir nicht mit mysql connect. Das ist mir schon klar zwinkern). Und wie kriege ich dann in der show_comments.php einen link der zb http://www.r0b1n-art.de/?id=news_comments1_add) heißt zu erstellen. Und wie wird die add_comments genau die richtige id wissen die zu den news gehört? Wie ihr seht stehe ich etwas auf dem Schlauch. Wäre cool wenn ihr mir weiterhelfen könntet oder es einfach mal erklären würdet, wie ihr es bei euch gemacht. Hauptsache ihr könntr mir irgendwie helfen zwinkern

0o?
Avatar user-118
27.04.2006 18:50

Ich schreibe einfach mal wie ich es machen würde:

2 Seiten:

  • news.php
  • comment.php


die News.php enthält eine Link der in etwa so aussieht.

index.php?param=comments&news_id=1


Die 1 holst du dir aus der MySQL-Datenbank , indem du die id des newsbeitrages ausliest.

Dann leitest du weiter auf die Comment.php, die auch schon das Formular fürs kommentare verfassen enthält.

dort ziehst du dir die einträge aus der Kommentartabelle, die als news_id, die id der news enthalten.

ich hoffe es wird halbwegs klar. Ich bin grad ziemlich fertig deswgeen dieser dürftige Post ... wenn du willst kann ich dir im Laufe der nächsten Tage mal ein paar codestücke schicken, zum besseren verständnis und so ....

mfg Alex

Ich brauche keine Signatur
Avatar user-284
27.04.2006 18:58

jop soweit alles verständlich nur :
dort ziehst du dir die einträge aus der Kommentartabelle, die als news_id, die id der news enthalten.

Ich muss doch extra eine Tabelle für die comments erstellen (mit datum des postings, verfasser usw). Wie schaffe ich es denn die news id mit denen der comments zu verbinden?

0o?
Avatar user-118
27.04.2006 19:02

du übergibst die News_id in der url. user-158n legs du ihm der Tabelle für die Comments ein Feld an im dem du diese newsid speicherst.

Falls du nun die kommentare anzeigen willst, ziehst du dir die news_id aus der url und vergleichst sie mit der newsid in der kommentartabelle, alles was übereinstimmmt wird ausgegeben.

mfg Alex

Ich brauche keine Signatur
Avatar user-284
27.04.2006 19:34

hm nun habe ich in der show.php folgenden code
echo "<p align=\"left\"> <a href=\"?id=news_id=".$row['ID']."\">Kommentare</a> | ".$row['Datum']."</p> \n <br />";


Und in der index.php heißt es :
case 'news_id' :
include ('comment.php'zwinkern;
break;


Wie kann ich realisieren, dass in der index.php je nach id eine Zahl drangehängt wird (index.php?id=news_id=1 usw)?

0o?
user-273
27.04.2006 20:21

Entweder du zählst alle kommentare des artikels also zu so SELECT COUNT(id) FROM table WHERE id = 1 und jagst das dann durch mysql_num_rows oder du machst bei news ne spalte commentcount und bei kommentar erstellen erhöhst du den wert um 1....

Avatar user-284
30.04.2006 20:14

so. Habe alles jetzt soweit hingekriegt. Nur eine Funktion fehlt noch. Ich möchte, dass in der news.php neben den news steht wieviele kommentare vorhanden sind. Ich habe mich für diese Variante entschieden :
du machst bei news ne spalte commentcount und bei kommentar erstellen erhöhst du den wert um 1....
.
Jetzt habe ich das Problem, dass er immer bei jeder news die zahl um eins erhöht. Daher haben alle angeblich die selben Commentzahlen, was aber natürlich nicht stimmt. Wie schaffe ich es, dass er die commentcount zeile nur bei den news um 1 erhöht, deren id über die url übermittelt wurden ? Ich habe es so versucht (totaler Schmarn wahrscheinlich, aber mir viel nichts besseres ein...)

$sql1 = "SELECT Datum, Inhalt, news_ID , commentcount FROM news ";
$sql2 = "WHERE news_ID = '".$id."' UPDATE news SET commentcount = commentcount + 1 ";

Ich hoffe ihr könnt mir helfen lächeln

0o?
Avatar user-317
30.04.2006 22:48

Himmel! http://dev.mysql.com/doc/ lass das deinen neuen Begleiter sein!
Wenn überhaupt, dann so :
$sql2 = "UPDATE `news` SET commentcount = commentcount + 1 WHERE news_ID = $id";

Avatar user-284
01.05.2006 07:11

hm ja danke für den Link. Ich war gestern etwas durch den Wind, als ich das gecodet habe. Ich schäme mich dafür zwinkern Nun funktioniert alles. user-158ke dafür zwinkern

0o?