Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System komentarzy
Forum PHP.pl > Forum > Bazy danych
primo
Chciałbym sobie zrobić system komentarzy do artykułów. System ten dotyczyć będzie tej strony: Mini słowniczek biegacza Tabelę w bazie danych obsługującą artykuły już mam. Czy teraz powinienem ją rozbudować o dodatkowe indeksy i do niej wstawiać komentarze czytających, czy też zrobić to w osobnej tabeli ? Jak Wy to rozwiązujecie questionmark.gif
A może jest jakaś gotowa klasa rozwiązująca mój problem questionmark.gif
Master Miko
Robisz drugą tabelę comments:

id | art_id | itp

art_id - to id artykułu do którego należy komentarz.

Bardzo podobnie jak kategorie: artykuł to kategoria, a komentarz do element należący do kategorii
revyag
Nie to forum.

Przenoszę.
Hydepark -> Bazy danych
primo
Cytat(primo @ 5.02.2007, 22:57:24 ) *
Chciałbym sobie zrobić system komentarzy do artykułów. System ten dotyczyć będzie tej strony: Mini słowniczek biegacza Tabelę w bazie danych obsługującą artykuły już mam. Czy teraz powinienem ją rozbudować o dodatkowe indeksy i do niej wstawiać komentarze czytających, czy też zrobić to w osobnej tabeli ? Jak Wy to rozwiązujecie questionmark.gif
A może jest jakaś gotowa klasa rozwiązująca mój problem questionmark.gif

Tabela zrobiona. Teraz biorę się za kod php, który będzie znacznie trudniejszy. Jeśli co na tym etapie jest nie tak to prosiłbym o ewentualną sugestię korekty.
  1. CREATE TABLE `bieg_slowniczek_comment` (
  2. `comment_id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `artykul_id` INT( 11 ) NOT NULL ,
  4. `nick` VARCHAR( 50 ) NOT NULL ,
  5. `comment` TEXT NOT NULL ,
  6. `data` DATETIME NOT NULL ,
  7. `link` VARCHAR( 100 ) NOT NULL ,
  8. PRIMARY KEY ( `comment_id` )
  9. ) TYPE = MYISAM ;



No i gotowe, jakby ktoś chciał skorzystać:

Może nie jest to najładniejszy na świecie kod, ale działa.

  1. <?php
  2. include "./ksiega/common_db.inc";
  3. $artykul_id = $_GET["artykul_id"];
  4. $nick = $_POST["nick"];
  5. $comment = $_POST["comment"];
  6. $data = $_POST["data"];
  7. $link = $_POST["link"];
  8.  
  9. $nick = HTMLSpecialChars($nick);
  10. $comment = HTMLSpecialChars($comment);
  11. $data = HTMLSpecialChars($data);
  12. $link = HTMLSpecialChars($link);
  13.  
  14.  
  15. if($nick == "" && $comment == "")
  16. {
  17. }
  18. else{
  19. addToCommentTable($artykul_id, $nick, $comment, $data, $link);
  20. }
  21.  
  22. function addToCommentTable($artykul_id, $nick, $comment, $data, $link) 
  23. {
  24. if (strlen($nick) > 0) 
  25. { 
  26. $nick = stripslashes($nick); 
  27. }else{
  28. $imie = "NULL"; 
  29. $error = 1;
  30. print '<p><b>Zapomniałeś podać swoje imię!</b></p>'; 
  31. } 
  32.  
  33. if($error !=1)
  34. {
  35.  
  36.  
  37. $link_id = db_connect($default_dbname);
  38.  
  39.  
  40. $query = "INSERT INTO bieg_slowniczek_comment (artykul_id, nick, comment, data, link) VALUES
  41.  ('".$artykul_id."', '".$nick."','".$comment."',NOW('".$data."'),'".$link."')"; 
  42. $result = mysql_query($query); 
  43.  
  44. if(!$result) 
  45. { 
  46. print "Problem z baz� danych. Odrzucone zapytanie."; 
  47. print "n<BR><BR>nBaza danych powiedzia�a mi o b��dzie numer " . 
  48.  mysql_errno() . ",nkt�ry najprawdopodobniej jest spowodowany przez: " . 
  49.  mysql_error() . "<BR>n<BR>n"; 
  50. exit; 
  51. } 
  52. } 
  53. else 
  54. { 
  55. print "Popraw dane!"; 
  56. } 
  57. }
  58.  
  59. // Ilo�� rekord�w na stronie
  60. define('RECORDS_PER_PAGE', 10);
  61.  
  62. $mysql_link = mysql_connect('db.st.interia.pl', '56360', 'ypLIefMyKjDm');
  63. mysql_select_db('db56360', $mysql_link);
  64.  
  65. // Pobieramy ca�kowit� ilo�� rekord�w
  66. $cnt = mysql_result(mysql_query('SELECT COUNT(*) FROM `bieg_slowniczek_comment `', $mysql_link), 0, 0);
  67. // Pobieramy numer strony do wy�wietlenia
  68. $page = (int)@$_GET['page'];
  69. if ($page * RECORDS_PER_PAGE > $cnt)
  70. $page = 0;
  71.  
  72.  
  73. $mysql_result = mysql_query('SELECT * FROM `bieg_slowniczek_comment` ORDER BY `comment_id` DESC LIMIT '.($page*RECORDS_PER_PAGE).','.RECORDS_PER_PAGE, $mysql_link);
  74. while ($row = mysql_fetch_row($mysql_result)) {
  75. $comment_id = $row[0];
  76. $artykul_id = $row[1];
  77. $nick = $row[2];
  78. $comment = $row[3];
  79. $data = $row[4];
  80. $comment = nl2br($comment);
  81. $link = $row[5];
  82.  
  83. <div class=ksiega>
  84. <h6>$nick - $data</h6>
  85. $comment
  86.  
  87. </div>";
  88.  
  89.  }
  90.  
  91.  
  92.  
  93.  
  94.  
  95. for ($nr = 0, $cnt = ceil($cnt / RECORDS_PER_PAGE);
  96. $nr < $cnt; $nr++) {
  97. echo '<div class=linki><a class="list_pages" href="index.php?op=7&page='.$nr;
  98. echo '">'.sprintf('%02d', $nr+1).'</a></div> ';
  99.  
  100.  
  101. }
  102. ?>
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.