Willkommen in der Webstatt Zum Webstatt Blog und Stories
r0b1n r0b1n am 27.04.06 20: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"). Diese existiert ja auch schon nur eben ohne Kommentarfunktion. Dann 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. Dann 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 ;)). 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 ;)

netcup.de Warum gibt es hier Werbung?
Al3x0r Al3x0r am 27.04.06 20: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
r0b1n r0b1n am 27.04.06 20:58

jop soweit alles verständlich nur :

Quote
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?

Al3x0r Al3x0r am 27.04.06 21:02

du übergibst die News_id in der url. Dann 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

r0b1n r0b1n am 27.04.06 21:34

hm nun habe ich in der show.php folgenden code

Quote
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 :
Quote
case 'news_id' :
include ('comment.php');
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)?

okraina am 27.04.06 22: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....

r0b1n r0b1n am 30.04.06 22: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 :

Quote
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...)
Quote

$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 :)

Sven Sven am 01.05.06 00: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";

r0b1n r0b1n am 01.05.06 09: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 ;) Nun funktioniert alles. Danke dafür ;)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt