[Frage] Kommentar Funktion

Rambo51

Erfahrenes Mitglied
Hallo,

ich sitze im moment auf dem Schlauch. ^^

Ich möchte noch zu meinem Newsscript eine Kommentar Funktion hinzufügen.
Das eingeben und ausgeben von Kommentaren ist kein problem, allerdings weiß ich nicht, wie ich es anstellen soll, dass die seite mit den kommentaren dann auch zu den newseintrag passt. Nicht das dann eine News über Games geschrieben wurde, und dann in den Kommentaren etwas über hardware steht.

Ich hoffe ich habe mich verständlich ausgedrückt.

Gruss Rambo51
 
Hmm...ja das kommt drauf an, wie du die News/Kommentare in die Tabelle schreibst. (Ich geh jetzt mal von ner MySQL-DB aus)
Sicher haben alle deine News eine ID. Diese ID speicherst du auch in die Kommentar-Tabelle, zu dem jeweiligen Kommentar. (klingt komplizierter als es ist)
Das sieht dann ungefähr so aus:
Code:
news_id | news_text | ...
...     |           |
5       | blabla... | ...


kom_id | news_id | kom_text | ...
...    |         |          |
7      | 5       | gutbl... | ...

Wenn man dann auf z.B. Kommentare lesen klickt gibst du einfach die ID dieser News mit und holst dann alle Kommentare aus der DB, die diese News ID haben.
Ich hoffe, das ist so einigermaßen verständlich! ;)

greetz
daddz
 
Ok habe es jetzt mal ausprobiert. Das Ausgeben klappt auch, bis auf das wenn ich einmal die News 1 und die News 2 habe, es immer die gleichen Kommentare komme!

So sieht meine Comments.php aus:
PHP:
<?php 

$conn_id = mysql_connect($host,$nick,$pw); 
mysql_select_db($database,$conn_id); 

?> 

<?php 
$result = mysql_query("select * from news_comments"); 

  if ($num = mysql_num_rows($result)) { 
    for($i=0;$i < $num; $i++) {  
      $autor = mysql_result($result,$i,"autor"); 
      $text = mysql_result($result,$i,"text");  

echo " 
      <table width=\"562\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
  <!--DWLayoutTable-->
  <tr>
    <td width=\"562\" height=\"28\" valign=\"top\">$autor</td>
  </tr>
  <tr>
    <td height=\"122\" valign=\"top\">$text</td>
  </tr>
</table><br> 
"; 
    } 
  } else echo "No comments"; 
?>


und so meine News.php:
PHP:
<?php 

$conn_id = mysql_connect($host,$nick,$pw); 
mysql_select_db($database,$conn_id); 

if ($do == "comments" ) {
 include ("comments.php");
 }

?> 

<?php 
$result = mysql_query("select * from $table ORDER BY datum DESC LIMIT 0, 4"); 

  if ($num = mysql_num_rows($result)) { 
    for($i=0;$i < $num; $i++) { 
      $id = mysql_result($result,$i,"id");
      $titel = mysql_result($result,$i,"titel"); 
      $autor = mysql_result($result,$i,"autor"); 
      $bild = mysql_result($result,$i,"bild");
      $datum = mysql_result($result,$i,"datum");
      $text = mysql_result($result,$i,"text"); 

echo " 
      <table align=\"center\" width=\"600\" border=\"0\" bgcolor=\"black\" cellpadding=\"0\" cellspacing=\"1\"> 
  <!--DWLayoutTable--> 
  <tr> 
    <td height=\"28\" colspan=\"2\" valign=\"top\"><table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> 
        <!--DWLayoutTable--> 
        <tr> 
          <td width=\"478\" style=\"background-image:url(images/content_bg.jpg)\" height=\"28\"><strong>$titel</strong></td> 
          <td width=\"120\" style=\"background-image:url(images/1stmc.jpg)\" valign=\"top\"><!--DWLayoutEmptyCell-->&nbsp;</td> 
        </tr> 
    </table></td> 
  </tr> 
  <tr> 
    <td height=\"151\" colspan=\"2\" valign=\"top\"><table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> 
      <!--DWLayoutTable--> 
      <tr> 
        <td class=\"newstext\" width=\"520\" rowspan=\"2\" valign=\"top\">$neuertext</td> 
        <td class=\"newstext\" width=\"80\" height=\"80\"><div align=\"center\"><img src=\"images/$bild.gif\" width=\"70\" height=\"70\"></div></td> 
      </tr> 
      <tr> 
        <td class=\"newstext\" height=\"71\">&nbsp;</td> 
      </tr> 
    </table></td> 
  </tr> 
  <tr> 
    <td class=\"newsunten\" width=\"199\" height=\"24\">geschrieben von $autor</td> 
    <td class=\"newsunten\" width=\"199\"><div align=\"right\"><A href=\"http://localhost/newstest/news.php?do=comments&id=$id\" target=\"_blank\">Comments</A></div></td> 
	<td class=\"newsunten\" width=\"199\"><div align=\"right\">$datum</div></td> 
  </tr> 
</table><br> 
"; 
    } 
  } else echo "No News"; 
?>


und hier noch die DB tabelle für die kommentare:
Code:
CREATE TABLE news_comments(
comm_id int( 11 ) NOT NULL AUTO_INCREMENT ,
autor varchar( 255 ) ,
text text,
PRIMARY KEY ( comm_id ) 
)

Sorry für diese dummen Fragen, aber es ist nicht mein Tag!

Gruss Rambo51
 
Stimmt..... habe ich vergessen! Aber wie soll ich das eingeben? Weil es gibt ja schon
Code:
comm_id int( 11 ) NOT NULL AUTO_INCREMENT ,

Gruss Rambo51
 
Du musst ja nur dieselbe id wie die news haben ...
Das kannst du ja wiederum mit einer get-Variable übergeben.

Also du hast die News und auf dem ink zu den Kommentaren übergibst du noch die id, mit der die Kommentare dann arbeiten.
Du brauchst also kein Auto increment
 
Zurück