Koncepcja zrobienia forum w ksztalcie drzewka ....

0

Jeszcze raz forum , tym razem mam takie pytanko....
Chodzi mi o zrobienie takie systemu coby odpowiedz do danego wątku byla wcieta w stosunku do poprzedniego itd.....
Wiadomo jest w tym momencie kto komu odpowiada przyklad: http://lanos.autokacik.pl/ - kącik właścicieli -> forum
Wszystko robie na mysql-u i wlasnie sie zastanawiam nad rozwiazaniem problemu.... Licze na Was doswiadczonych programistow moze macie juz to przecwiczone ?
pozdrowka

//http://4programmers.net/Forum/viewtopic.php?id=35681 - m.M

0

hmm... ja tam tego jeszcze nie robilem :P
ale proponuje sprawdzac dany temat to watek glowny jest tak to ok, jesli nie to przed linkiem wstawic np. 5 spacji - i po bolu :P

0

hmm... ja tam tego jeszcze nie robilem :P
ale proponuje sprawdzac dany temat to watek glowny jest tak to ok, jesli nie to przed linkiem wstawic np. 5 spacji - i po bolu :P

prawde mowiac ma to sens, mozna zrobic dodatkowa kolumne w bazie ktora wskazywalaby poziom zagniezdzenia , nr 1 to temat glowny, 2 odpowiedz , 3 - odp. na wiadomosc 2 itd..... no trza by to zrobic dzieki ;-)
i jeszcze jedno
chyba troszke zle mnie zrozumiales bo nie chodzi mi o to zeby wszystki eodpowiedzi byly tak samo zagniezzodzne np.
"Watek glowny"
Odp.do watku gl. 1
Odp.do watku gl. 2
Odp.do watku gl. 3

Bo moze sie tak zdarzyc ze odp. 3 moze byc odpowiedzia na watek 2 czyli powinno byc:
"Watek glowny"
Odp.do watku gl. 1
Odp.do watku gl. 2
Odp.do watku gl. 3

:)

0

tak ale w jaki sposób teraz odróżnić chcesz czy odp3 jest do 1 czy do 2?

chyba najlepiej sobie dynamicznie tabele tworzyć albo coś w tym rodzaju, ale gdzieś coś na wzór drzewa widziałem i bardzo to kiepściutkie było jak sobie znajde to ci powiem jak to oni zrobili.

Ale to bylo chyba jakoś tak że opdowiadało się na wątek główny a jak ktoś odpowiadał na post któryś to tam był obok postu link i tworzył się jakby nowy temat czyli otwierała się nowa strona z zawartością nowego wątku. MOżna by taką strone na upartego includować pod postem do którego jest ale z przesunięciem jakimś.

0

dokladnie chcialbym zrobic cos takiego jak na stronie http://lanos.autokacik.pl
Moja koncepcja jest taka, ze stworzyc w tabeli mysqlowej 2 dodatkowe pola , pierwsze(np. "watek" - bedzie numerem rozpoczetego watku i wszystkie odpowiedzi do niej beda mialy ten sam numer, drugie pole (np. "zagniezdzenie" - bedzie mialo numer w zaleznosci od zagniezdzenia odpowiedzi czyli watek glowny bedziemial nr 1 odpowiedz na niego nr 2 , odpowiedz na "odpowiedz" nr 2 bedzie miala wartosc 3.
W tym momencie po wartosci pola pierwszego bedziemy mogli znaleŹĆ wszystkie posty odnoszace sie do danego watku a pozniej maja dane w polu drugim (zagniezdzenie) bedziemy mogli odpowiednio poukladac posty.

NP.

1 Wątek główny (pole watek = 1; zagniezdzenie=1)
1 odp do 1 watku (pole watek = 1; zagniezdzenie=2)
2 odp do 1 watku (pole watek = 1; zagniezdzenie=2)
2 Wątek główny (pole watek = 2; zagniezdzenie=1)
1 odp do 2 watku (pole watek = 2; zagniezdzenie=2)
2 odp do 2 watku (pole watek = 2; zagniezdzenie=2)
3 odp do 2 watku (pole watek = 2; zagniezdzenie=2)
1 odp do 3 watku (pole watek = 2; zagniezdzenie=1)

I tutaj znalazlem problem bo w tym momencie 1-ą odp do 3 watku nie wiadomo do ktorej wiadomosci z 2 watku dolozyc :(
tu sie urywa moja koncepcja ..........

0

a czemu nie zrobic tego tak:

1 watek
1 odp. do 1 watku
2 odp. do 2 watku
1 odp do 2 podwatku :P
2 watek
1 odp....

itd.
byloby nawet w miare czytelne :D

0

a czemu nie zrobic tego tak:

1 watek
1 odp. do 1 watku
2 odp. do 2 watku
1 odp do 2 podwatku :P
2 watek
1 odp....

itd.
byloby nawet w miare czytelne :D

no a jak ja zrobilem wczesniej ? wlasnie o to mi chodziło, zrobilem tak samo tylko ze akurat do 1-ego watku nie bylo odpowiedzi :) no dobra poprawilem ;-)

0

Moim zdaniem do przedstawienia strutktury potrzebujesz dwóch pól:

ID odpowiedzi, (najlepiej autonumerowane i bez możliwości powtórzeń)
ID nadrzednej odpowiedzi,

I w ten sposób to rozbisz:

[code]
wątek 1 (ID odpowiedzi: 1; ID nadrzędnej odpowiedzi: 0)
odpowiedz1 (ID odpowiedzi: 2; ID nadrzędnej odpowiedzi: 1)
odpowiedz2 (ID odpowiedzi: 3; ID nadrzędnej odpowiedzi: 1)
odpowiedz1doodpowiedzi2 (ID odpowiedzi: 4; ID nadrzędnej odpowiedzi: 3)
odpowiedz1doodpowiedzi2 (ID odpowiedzi: 5; ID nadrzędnej odpowiedzi: 3)
odpowiedz1doodpowiedzi2 (ID odpowiedzi: 6; ID nadrzędnej odpowiedzi: 5)
[/code]

Nigdy czegoś takiego sam nie robiłem, ale myślę że byłoby to najoptymalniejsze rozwiazanie

0

Moim zdaniem do przedstawienia strutktury potrzebujesz dwóch pól:

ID odpowiedzi, (najlepiej autonumerowane i bez możliwości powtórzeń)
ID nadrzednej odpowiedzi,

no mysl ze ma to sens, pomysle nad kodem dzieki

0

a moze by po prostu przy kazdym wpisie zaznaczac jaki jest nadrzednywatek, i w kazdy watek zagnierdzac sie tak dlugo dopoki nadzedy watek bedzie pusty, a pozniej wrocic poziom wyzej i...
tak jak w drzewach binarnych :P
swoja droga chyba fajnie by sie to dalo zrobic 1 funkcja - rekurencyjnie ;)

0

a moze by po prostu przy kazdym wpisie zaznaczac jaki jest nadrzednywatek, i w kazdy watek zagnierdzac sie tak dlugo dopoki nadzedy watek bedzie pusty, a pozniej wrocic poziom wyzej i...
tak jak w drzewach binarnych :P
swoja droga chyba fajnie by sie to dalo zrobic 1 funkcja - rekurencyjnie ;)

tak właśnie zaproponowałem, i w ten sposób nie ma ograniczeń na ilość zagłebień w drzewie (chyba że je programowo narzucić) i całe drzewko można jedną prostą pętelką wygenerować...
Ale nie rozumiem, jak w odpowiedziach nadrzędny wątek może byc pusty?

Aha! założyłem że jak ID nadrzędnej odpowiedzi jest = 0, to znaczy to że jest to wątek główny...

0

no fakt nadrzedny nie moze byc pusty - ups ;P
po prostu podwatek moze taki byc - czyli nie istnieje i w tym momencie skrypt musi wycofac sie o poziom w gorei dalej zaczac sie zaglebiac :P
dalem d**y - przyznaje :P

0

Moim zdaniem do przedstawienia strutktury potrzebujesz dwóch pól:

ID odpowiedzi, (najlepiej autonumerowane i bez możliwości powtórzeń)
ID nadrzednej odpowiedzi,

I w ten sposób to rozbisz:

[code]
wątek 1 (ID odpowiedzi: 1; ID nadrzędnej odpowiedzi: 0)
odpowiedz1 (ID odpowiedzi: 2; ID nadrzędnej odpowiedzi: 1)
odpowiedz2 (ID odpowiedzi: 3; ID nadrzędnej odpowiedzi: 1)
odpowiedz1doodpowiedzi2 (ID odpowiedzi: 4; ID nadrzędnej odpowiedzi: 3)
odpowiedz1doodpowiedzi2 (ID odpowiedzi: 5; ID nadrzędnej odpowiedzi: 3)
odpowiedz1doodpowiedzi2 (ID odpowiedzi: 6; ID nadrzędnej odpowiedzi: 5)
[/code]

Nigdy czegoś takiego sam nie robiłem, ale myślę że byłoby to najoptymalniejsze rozwiazanie

zey to zrobic bez rekurencji dolozylem jeszcze jedno pole ktore przechowuje nr wątku głównego np. pole "watek".
Najpierw sparawdzam ile w ogole jest watko glownych w bazie, potem zapuszczam petle od 1 do ilosci watkow glownych. I teraz w kazym przebiegu tej petli musze znaleŹĆ wszystkie posty o watku=1 (pierwszy watek glowny). Jak juz je znajde musze z nich zrobic drzewko jeszcze nie wiem jak ;-)

0

zey to zrobic bez rekurencji dolozylem jeszcze jedno pole ktore przechowuje nr wątku głównego np. pole "watek".
Najpierw sparawdzam ile w ogole jest watko glownych w bazie, potem zapuszczam petle od 1 do ilosci watkow glownych. I teraz w kazym przebiegu tej petli musze znaleŹĆ wszystkie posty o watku=1 (pierwszy watek glowny). Jak juz je znajde musze z nich zrobic drzewko jeszcze nie wiem jak ;-)

niepotrzebnie, aby sprawdzić ile jest wątków głównych w zapytaniu dajesz warunek że ID, nadrzędnej odpowiedzi = 0 i masz liczbę wątków głównych.

A petle robisz na tabeli i posługujesz się zapytaniami w których zmieniasz ID odpowiedzi nadrzędnej, jeśli zwróci zero to wiesz że był to ostatni poziom...

0

niepotrzebnie, aby sprawdzić ile jest wątków głównych w zapytaniu dajesz warunek że ID, nadrzędnej odpowiedzi = 0 i masz liczbę wątków głównych.

A petle robisz na tabeli i posługujesz się zapytaniami w których zmieniasz ID odpowiedzi nadrzędnej, jeśli zwróci zero to wiesz że był to ostatni poziom...

Mam taka prosbe, moglbys mi skrotowo przedstawic jak to trza kolejno wypisywac. Wg mnie, musze znaleŹĆ ile jest w ogóle odpowiedzi na np. watek glowny nr 1 i je wypisac odpowiednio. Pozniej to samo robie z watkiem glownym nr 2 itd....
Musze jakos znaleŹĆ wszystkie odpowiedzi odnoszace sie do konkretnego watku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1