Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> odczytywanie komentarzy z odpowiedziami
piotr485
post
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


Witam, mam taka tabele - komentarze

id|id_odp|nick|tresc|

jesli id_odp == 0 to znaczy ze to pierwszy poziom komentarzy bez odpowiedzi i teraz mam pytanie bo próbuję wyświetlić wszystkie komentarze wraz z odpowiedziami, na razie mam w planie zrobić możliwość odpowiedzi na komentarz do 4 poziomu i więc tak sobie wymyśliłem pętle for

  1.  
  2. for($i=0;$i<=4;$i++) {
  3.  
  4. $tab_query[$i] = mysqli_query($db, 'SELECT * FROM komentarze_imprezy WHERE id_odp = "0"');
  5. while($r[$i] = mysqli_fetch_assoc($tab_query[$i])) {
  6.  
  7. echo komentarz($r[$i]['id'],$r[$i]['nick'],$r[$i]['tresc'],$r[$i]['data'],$r[$i]['godzina'],$i);
  8.  
  9. }
  10.  
  11. }


wiem że muszę tu wcisnąć jeszcze warunek ilości rekordów jeśli są to wtedy wyświetlaj dalej i w ogóle jak skonstruować warunek WHERE, a dokładniej jak później wyciągnąć id_odp w tym przypadku bo już się pogubiłem.

Mógłbym to zrobić ręcznie bez pętli ale wtedy kod by był nie wiadomo jak długi i ograniczenie do ilości poziomów a tutaj przy petli go nie mam.

Chyba, że w ogóle, źle próbuję to rozwiązać - ktoś mnie naprowadzi na właściwą drogę?

Go to the top of the page
+Quote Post
IAmBoskiM
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 8.05.2016

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


komentarze
id (komentarza) | tresc | nick | data

odpNaKom
id (nie jest konieczne) | id_kom (do którego zwykłego komentarza się odnosi; czyli może być parę takich co mają tą samą wartość) | treść | nick | data

  1. <?php
  2. $qry = mysqli_query($db, 'SELECT * FROM komentarze');
  3. while ($kom = mysqli_fetch_assoc($qry)) {
  4. echo komentarz($kom); // dajmy na to że to jakaś funkcja wyświetlająca ZWYKŁY komentarz
  5. $qry2 = mysqli_query($db, "SELECT tresc, nick, data FROM odpNaKom WHERE id_kom = {$kom['id']} ORDER BY data ASC"); // ew. DESC, jak wolisz
  6. while ($odp = mysqli_fetch_assoc($qry2)) {
  7. echo odpNaKom($odp); // funkcja wyświetlająca podkomentarz
  8. }
  9. }
  10. ?>
Go to the top of the page
+Quote Post
lukaskolista
post
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


To powinno być zrealizowane na jednej tabeli, ponieważ chyba dla każdego poziomu komentarza nie będziesz tworzył nowej tabeli. Poza tym jak na wielu tabelach zrealizujesz wyszukiwanie komentarzy i odpowiedzi na nie po ich treści?
Użyj struktury drzewa. Jeżeli danych nie będzie dużo, to może być nested sets.
Go to the top of the page
+Quote Post
IAmBoskiM
post
Post #4





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 8.05.2016

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


Miałem na myśli tylko dwie tabele, komentarze i odpNaKom. Kolumna id_kom odnosi się do kolumny id z komentarze; czyli np. jest komentarz o id 2, i podkomentarz (w odpNaKom) z id_kom 2. Oznacza to, że ten podkomentarz odnosi się do komentarza o id 2.
Go to the top of the page
+Quote Post
lukaskolista
post
Post #5





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Moim zdaniem jest to bez sensu. Komentarze jak i odpowiedzi na nie to identyczne struktury poza tym, że podkomentarze posiadają rodzica. Poza tym ograniczasz w ten sposób dyskusję na dany temat, bo na podkomentarz już się nie da odpowiedzieć.
Go to the top of the page
+Quote Post
koodo218
post
Post #6





Grupa: Zarejestrowani
Postów: 114
Pomógł: 25
Dołączył: 22.11.2015

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


Cytat(lukaskolista @ 24.08.2016, 09:51:30 ) *
Moim zdaniem jest to bez sensu. Komentarze jak i odpowiedzi na nie to identyczne struktury poza tym, że podkomentarze posiadają rodzica. Poza tym ograniczasz w ten sposób dyskusję na dany temat, bo na podkomentarz już się nie da odpowiedzieć.

Zawsze możesz dać id do pod komentarza.
Go to the top of the page
+Quote Post
lukaskolista
post
Post #7





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Cytat(koodo218 @ 24.08.2016, 10:14:02 ) *
Zawsze możesz dać id do pod komentarza.

Zawsze możesz dodać nową tabelę i tak w kółko do 10 poziomu... Nie ogarniam tego.

Podajcie jakiś sensowny argument za tym, żeby odpowiedzi do komentarzy (które z technicznego punktu widzenia są komentarzami do komentarzy) powinny być w innej tabeli.
"Zawsze możesz to i tamto" nie jest żadnym argumentem.
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 - 16:00