Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Dodawanie komentarza do wiadomości, Problemy
andrzejlechniak
post 13.06.2011, 20:12:55
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


Witam
Mam pewien problem. Chodzi o dodawanie komentarzy do wiadomości. Tzn. sam komentarz dodaje się do bazy, ale nie przypisuje się do konkretnej wiadomości. Nie bardzo wiem dlaczego.

Mam 2 tabele: wiadomości (id, tresc,...) i komentarze (id, id_wiadomosci,tresc,...). Id_kategorii jest równy id (w tab. komentarze_wiadomosci). Oto kawałek kodu odpowiedzialny za dodawanie komentarza:

  1. if(isset($_POST['submit']))
  2. {
  3. $osoba = mysql_real_escape_string(htmlspecialchars($_POST['osoba']));
  4. $tresc = mysql_real_escape_string(htmlspecialchars($_POST['tresc']));
  5. $id = $_POST['id'];
  6. $id_kategorii = $_POST['id_kategorii'];
  7.  
  8. if(empty($osoba) || empty($tresc))
  9. {
  10. echo '<div class="niedodanie_komentarza">
  11. Komentarz nie został dodany. Pola nazwy lub treści komentarza są puste! Spróbuj jeszcze raz.
  12. </div>';
  13. }
  14. else if(strlen($_POST['osoba'])<3)
  15. {
  16. echo '<div class="niedodanie_komentarza">
  17. Komentarz nie została dodany. Pole OSOBA - <span>'.$osoba.'</span> jest za krótkie! Spróbuj jeszcze raz.
  18. </div>';
  19. }
  20. else if(strlen($_POST['tresc'])<4)
  21. {
  22. echo '<div class="niedodanie_komentarza">
  23. Komentarz nie została dodany. Pole TREŚĆ - <span>'.$tresc.'</span> jest za krótkie! Spróbuj jeszcze raz.
  24. </div>';
  25. }
  26. else
  27. {
  28. $id_kategorii['id_wiadomosci'] = $idNews;
  29. $sql = "INSERT INTO komentarze_wiadomosci (id,osoba,tresc,data) VALUES ('$id','$osoba','$tresc',CURDATE());";
  30. $result = mysql_query($sql) or die( mysql_error()) ;
  31.  
  32. if($result)
  33. {
  34. echo '<div class="dodanie_komentarza">
  35. Komentarz dodany poprawnie. <a href="index.php?id=wydarzenia&idnewsa='.$idNews.'">Odśwież</a> aby zobaczyć swój komentarz na stronie.</div>';
  36. }
  37. else
  38. {
  39. echo 'Komentarz nie zostal dodany.';
  40. }
  41. }
  42. }


Bardzo proszę o podpowiedź lub pomoc. Pozdrawiam
Go to the top of the page
+Quote Post
mat-bi
post 13.06.2011, 20:15:55
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


A gdzie masz prypisanie id wiadomości do komentarza? Bo nie sądzę, że to id...
Go to the top of the page
+Quote Post
andrzejlechniak
post 13.06.2011, 20:21:18
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


Przypisanie id_wiadomości do id komentarza mam wcześniej,gdy wyświetlam wszystkie wiadomości:

  1. $sql_2 = 'SELECT w.id wid, k.id kid, k.osoba kosoba, k.data kdata, k.tresc ktresc FROM komentarze_wiadomosci k '.
  2. 'LEFT JOIN wiadomosci w ON w.id = k.id_wiadomosci WHERE k.id_wiadomosci= '.$id.' ORDER BY k.id ASC';
  3. $res_2 = mysql_query($sql_2) or die(mysql_error());
  4. while ($row = mysql_fetch_array($res_2))
  5. {
  6. extract($row);
  7. if(!isset($wid))
  8. {
  9. echo '<div class="komentarze_main_a">Nie ma wyników dla tej kategorii</div>';
  10. }
  11. else
  12. {
  13. echo '<div class="komentarze_main_a">';
  14. echo '<div class="komentarze_autor">Komentarz nr: <span>'.$kid.'</span> | dodany przez: <span>'.$kosoba.'</span> | dnia: <span>'.$kdata.'</span></div>';
  15. echo '<div class="komentarze_tresc">'.$ktresc.'</div>';
  16. echo '</div>';
  17. }
  18.  
  19. }
  20. echo '</div>';


i czy w dodawaniu komentarzy też przypisać id_wiadomości do id komentarza?
Go to the top of the page
+Quote Post
Fifi209
post 13.06.2011, 20:44:21
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


A pokaż formularz, który przesyłasz do skryptu (tego co dodaje)


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
andrzejlechniak
post 13.06.2011, 20:47:30
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


Przesyłanie danych przez formularz:

  1. echo '<div class="komentarze_main">
  2. <form action="index.php?id=wydarzenia&idnewsa='.$idNews.'" method="post">
  3. <div class="formularz_komentarza">
  4. Przedstaw się: <br />
  5. <input type="text" name="osoba" />
  6. </div>
  7. <div class="formularz_komentarza">
  8. Napisz komentarz:<br /> <textarea cols="20" rows="5" name="tresc"></textarea>
  9. </div>
  10. <div class="formularz_komentarza">
  11. <img src="obrazki/uwaga.png" class="komentarz_uwaga" />
  12. Wysłanie komentarza jest równoznaczne z akceptacją regulaminu!<br />
  13. <input type="checkbox" name="nazwa" value="wartość" onclick="this.form.elements[\'submit\'].disabled = !this.checked" />Akceptuję regulamin</a>
  14. <input type="submit" name="submit" value="Dodaj" disabled="disabled" />
  15. <input type="reset" name="reset" value="Wyczyść"/>
  16. <br />
  17. <a href="java script:otwieranieOkna(\'regulamin.html\')" title="Zanim się wpiszesz, przeczytaj regulamin">Regulamin komentarzy</a>
  18. </div>
  19. </form>
  20. </div>';


Nie wiem czemu nie przypisuje się automatycznie id_wiadomosci do komentarza, znaczy komentarz dodaje się ale nie jest przypisany do konkretnej, jednej wiadomości.
Go to the top of the page
+Quote Post
Fifi209
post 13.06.2011, 20:52:52
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


id_news'a podajesz w get, a chcesz odbierać w post.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
drPayton
post 13.06.2011, 20:53:35
Post #7





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. $id_kategorii['id_wiadomosci'] = $idNews;


A gdzie jest deklarowane "$idNews"?
Go to the top of the page
+Quote Post
andrzejlechniak
post 13.06.2011, 21:00:05
Post #8





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


W początkowych wersach skryptu jest:

  1. $idNews = (int)$_GET['idnewsa'];
  2. $sql = 'select * from wiadomosci where id='.$idNews;
  3. $res = mysql_query($sql) or die(mysql_error());


$idNews - służy do wyświetlania jednej, konkretnej wiadomości.
Go to the top of the page
+Quote Post
drPayton
post 13.06.2011, 21:21:15
Post #9





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


a post @Fifi209'a widział, hę? oneeyedsmiley02.png
Go to the top of the page
+Quote Post
andrzejlechniak
post 13.06.2011, 21:29:56
Post #10





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


Nie rozumiem, przecież $idNews przesyłam wewnątrz pętli a i powinienem odbierać je także wewnątrz pętli. Innymi słowy, widzę gdzie jest problem:

  1. $id_kategorii['id_wiadomosci'] = $idNews;

ale wciąż nie wiem jak to zmienić....
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 17:14