Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Komentarze do newsów..
Forum PHP.pl > Forum > Przedszkole
Oterotm
Piszę system newsów z komentarzami i mam problem. Przy wyświetlaniu newsów gdy klikam żeby wyświetlało komentarze to wyświetla komentarze ze wszystkich newsów naraz. Jak zrobić tak żeby wyświetlało tylko komentarze do jednego newsa? Kod:

  1. <?php
  2.  
  3.  
  4. if (!isset($_SESSION['user'])) {
  5.  
  6. echo '<form action="login.php" method="post" > 
  7. Login: <input type="text" name="nick" /><br />
  8. <br />Haslo: <input type="password" name="pass" /><br />
  9. <br /><input type="submit" value="Loguj" /> </form> <br />';
  10.  
  11. } 
  12.  
  13. else {
  14.  
  15. $mod= $_GET['mod'];
  16. switch($mod) { 
  17.  
  18. default:
  19.  
  20. echo '<div id="all">
  21. <div id="header">
  22. <ul class="menu1">
  23. <a href="page.php"><li>Home</li></a>
  24. <a href="page.php?mod=add"><li style="word-spacing: 4px">Dodaj newsa</li></a>
  25. <a href="page.php?mod=remove"><li>Usun</a></li>
  26. <a href="page.php?mod=logout"><li>Wyloguj</li></a>
  27. </ul>
  28. </div>
  29. <div id="main">
  30. Witaj
  31. </div>
  32. </div>
  33. </div>';
  34.  
  35. break;
  36.  
  37. // Dodawanie newsa
  38.  
  39. case 'add':
  40.  
  41. $subject= $_POST['subject'];
  42. $new= $_POST['new'];
  43. $date= date("d.m.Y, H.i");
  44. $all= '<div id="all">' 
  45. . '<div id="subject">' . $subject . '</div>' . 'df%^s*6*7'
  46. . '<div id="news>' . $new . '</div>' . 'df%^s*6*7'
  47. . $date
  48. . '</div>';
  49.  
  50. echo '<div id="all">
  51. <div id="header">
  52. <ul class="menu1">
  53. <a href="page.php"><li>Home</li></a>
  54. <a href="page.php?mod=add"><li style="word-spacing: 4px">Dodaj newsa</li></a>
  55. <a href="page.php?mod=remove"><li>Usun</a></li>
  56. <a href="page.php?mod=logout"><li>Wyloguj</li></a>
  57. </ul>
  58. </div>
  59. <div id="main">
  60. </div>
  61. </div>
  62. </div>';
  63.  
  64.  
  65. if (empty($_POST['subject']) || empty($_POST['new'])) {
  66.  
  67. echo '<div id="main">
  68. <form method="post">
  69. <br />Temat:<br /> <input type="text" name="subject" size="52" /><br />
  70. <br /><textarea name="new" cols="40" rows="10"></textarea><br />
  71. <br /><input type="submit" Value="Napisz" /></div>';
  72.  
  73. if (isset($_POST['subject']) || isset ($_POST['new'])) {
  74.  
  75.  
  76. echo 'Nie wpisales wymaganych informacji tongue.gif';
  77.  
  78. } 
  79.  
  80. }
  81.  
  82. else {
  83.  
  84. $file= fopen('news.txt', 'a');
  85. fwrite($file, $all ."r\n");
  86. fclose($file);
  87.  
  88.  
  89.  
  90. echo '<div id="newadd">News zostal dodany tongue.gif</div>';
  91.  
  92. }
  93.  
  94.  
  95.  
  96. break; 
  97.  
  98. //Usuwanie newsa
  99.  
  100. case 'remove':
  101.  
  102.  
  103.  
  104. $filename = "news.txt";
  105. $delete = 3;
  106.  
  107. $file = file($filename);
  108. $file[$delete-1] = "";
  109. $file = implode ("",$file);
  110. $fp = fopen ($filename , "w");
  111. flock ($fp,2);
  112. fwrite ( $fp , $file);
  113. flock($fp,3);
  114. fclose($fp); 
  115.  
  116. break;
  117.  
  118. // Wylogowywanie 
  119.  
  120. case 'logout':
  121.  
  122. if (!isset($_SESSION['user'])) {
  123.  
  124. echo 'Nie byles zalogowany tongue.gif';
  125. echo '<form action="page.php?mod=logout" method="post" > 
  126. Login: <input type="text" name="nick" /><br />
  127. <br />Haslo: <input type="password" name="pass" /><br />
  128. <br /><input type="submit" value="Loguj" /> </form>';
  129.  
  130. }
  131.  
  132. else {
  133.  
  134. unset ($_SESSION['user']);
  135. header ("Location: page.php");
  136.  
  137. } 
  138.  
  139. break;
  140.  
  141. }
  142.  
  143.  
  144.  
  145. }
  146.  
  147. ?>


pokazywanie newsów:

  1. <?php
  2.  
  3. $file= file('news.txt');
  4.  
  5. foreach ($file as $news) {
  6.  
  7. $data= explode('df%^s*6*7', $news);
  8. $subject= $data[0];
  9. $new= $data[1];
  10. $date= $data[2];
  11.  
  12. $newsshow= '<div id="all">' 
  13. . '<div id="subject">' . $subject . '</div>'
  14. . '<div id="news>' . $new . '</div>'
  15. . '<div id="end">' . 'Dodano: ' . $date . '<a href="show.php?mode=showcomments">komentarze</a>' . '</div>'
  16. . '</div>' . '<br />'; 
  17.  
  18. echo $newsshow;
  19.  
  20. $mode= $_GET['mode'];
  21.  
  22. switch ($mode) {
  23.  
  24. case 'showcomments': 
  25.  
  26. include ("showcomments.php");
  27.  
  28.  
  29. }
  30.  
  31.  
  32. } 
  33.  
  34. ?>


pokazywanie komentarzy:

  1. <?php 
  2.  
  3. $file= file('comments.txt');
  4.  
  5. foreach ($file as $show) {
  6.  
  7. $data= explode ('&fY48J92$3^/d', $show);
  8. $nick= $data[0];
  9. $news= $data[1];
  10.  
  11. echo 'Nick: ' . $nick , '<br />';
  12. echo 'Tresc: ' . $news , '<br />';
  13.  
  14. }
  15.  
  16. ?>


dodawanie komentarzy:

  1. <?php 
  2.  
  3. $nick= $_POST['nick'];
  4. $news= $_POST['news'];
  5. $all= $nick . '&fY48J92$3^/d' . $news;
  6.  
  7. if (empty($_POST['nick']) || empty($_POST['news'])) {
  8.  
  9. echo 'Nie podales nicka/tresci';
  10.  
  11. } 
  12.  
  13. else {
  14.  
  15. $file= fopen ('comments.txt', 'a');
  16. fwrite ($file, $all ."r\n");
  17. fclose ($file);
  18.  
  19. echo 'Komentarz zostal dodany';
  20.  
  21. } 
  22.  
  23. ?>
Crozin
Przy zapisie komentarzy zapisuj również ID newsa, którego dotyczą - potem wyświetlasz tylko te, w których to ID jest równe ID aktualnie przeglądanego newsa.
Mlodycompany
dokladnie tak jak crozin. strosujesza warunek w petli ze jesli id newsa z tabeli jest rowna id newsa to wyswietla komentarze. a mam pytanie. nie lepiej by bylo to na sql zrobic??/
Oterotm
Czyli najlepiej dla id newsa to po prostu ponumerować je tak?
Oterotm
Cytat
a mam pytanie. nie lepiej by bylo to na sql zrobic??


No lepiej, ale po prostu jakoś nie chce mi się z Mysql ruszyć tongue.gif
Mlodycompany
to zainstaluj krasnala. tam masz wszystko
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.