Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> System komentarzy, może coś podpowiecie
primo
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
A może jest jakaś gotowa klasa rozwiązująca mój problem (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Master Miko
post
Post #2





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
revyag
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Nie to forum.

Przenoszę.
Hydepark -> Bazy danych
Go to the top of the page
+Quote Post
primo
post
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
A może jest jakaś gotowa klasa rozwiązująca mój problem (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:52