![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 6.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, próbuje zrobić wyświetlanie komentarzy z opcją rodzic/dziecko czyli komentarz i odpowiedzi do nich. Google podpowiada że trzeba użyć tablic rekursywnych aby wygenerować drzewo komentarzy. Niestety z takimi tablicami nie miałem okazji się bawić do tej pory.
Mam taką tablicę:
Chciałbym dołączać dane do tej tablicy w pętli while po pobraniu danych z bazy. I teraz pojawia się pytanie: Jak dodać np. do 24 kolejne dziecko ? Albo jak dodać do 19 dziecko ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 6.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. W trakcie czekania na ta odpowiedź wpadłem na o wiele "lżejszy" pomysł (IMG:style_emoticons/default/smile.gif)
Wyświetlanie komentarzy w formie drzewa = odpowiednio duże marginesy z lewej strony to tylko estetyka, aby użytkownik wiedział do którego komentarza to odpowiedzi. Jako, że robienie struktury na drzewie a potem wyświetlanie to dość spore obciążenie dla serwera (aby zachować strukturę musimy wczytać wszystkie komentarze), postanowiłem wymyślić coś lepszego. W strukturze tabeli z komentarzami mamy takie kolumny: ID (zwiększane AI), KEY, DEPH I to nam wystarczy ! Teraz gdy dodajemy zwykły komentarz ustawiamy tą samą wartość w KEY co w kolumnie ID, a gdy komentarz jest odpowiedzią do innego to pobieramy jego ID i ustawiamy w KEY i zwiększamy DEPH o jeden (IMG:style_emoticons/default/smile.gif) Wyświetlając sortujemy wyniki po KEY oraz ewentualnie dacie dodania wpisu i dodajemy odpowiednie marginesy w zależności od wartości DEPH. Możemy wprowadzić paginację bo jak widzicie nie musimy tworzyć żadnej struktury (IMG:style_emoticons/default/smile.gif) Na razie szukam sposobu jak ustawić tą samą wartość w polu KEY co w polu ID w trakcie dodawania wpisu. Takie coś niestety nie działa: INSERT INTO `komentarz` (`key`, `deph`) VALUES (AUTO_ICREMENT, 5) Można by przed zapisem wysłać zapytanie do bazy jaka jest aktualnie największa wartość kolumny ID, zwiększyć ją o jeden i dopiero wywołać inserta ale ja wolałbym zrobić to na jednym zapytaniu, o ile jest taka możliwość (IMG:style_emoticons/default/smile.gif) Czy wiecie jak to zrobić ? Ten post edytował Sztef89 11.12.2011, 14:11:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 15:19 |