![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cześć ludziska. Chcę u siebie na forum zaimplementować taką funkcjonalność jak odnoszenie się do istniejących postów/komentarzy. Mogą być dwa przypadki: możliwość odpowiadania do posta poziomu 1, czyli na poniższym przykładzie da się odpowiadać do postów z ID 1, 2 i 4. Posty z ID 3, 5 i 7 są odpowiedziami do postów poziomu 1. Jak widzimy post ID 7 jest wyświetlony wcześniej niż post ID 4, mimo, że był dodany później (sortowanie wg daty lub ID).
| ID 1 - 01.02.2025 ..| ID 7 - 07.02.2025 | ID 2 - 02.02.2025 ..| ID 3 - 03.02.2025 ..| ID 5 - 05.02.2025 | ID 4 - 04.02.2025 Oraz drugi przypadek - możliwośc odpowiadania do każdego postu. Widzimy wiele poziomów postów, tutaj akurat 3. Czyli jest odpowiedź do odpowiedzi, np posty ID 9 i 11 są odpowiedziami do postu ID 8 a ten jest odpowiedzią do postu ID 7 podobnie jak 10 i 12 są odpowiedziami do 7, który to jest odpowiedzią do pierwszego postu o ID 1. | ID 1 - 01.02.2025 ..| ID 7 - 07.02.2025 ....| ID 8 - 08.02.2025 ......| ID 9 - 09.02.2025 ......| ID 11 - 11.02.2025 ........| ID 13 - 13.02.2025 ....| ID 10 - 10.02.2025 ....| ID 12 - 12.02.2025 | ID 2 - 02.02.2025 ..| ID 3 - 03.02.2025 ..| ID 5 - 05.02.2025 | ID 4 - 04.02.2025 Myślę, że w obu przykadach baza powinna wyglądać mniej więcej tak: ID | Data | treść | odpowiedź_do Dla drugiego przypadku (odpowiedzi do odpowiedzi) wyglądało by to tak: ID | Data | treść | odpowiedź_do 1 | 01.02 | blabla | 0 2 | 02.02 | blabl2 | 0 3 | 03.02 | blabla | 2 4 | 04.02 | blabl4 | 0 5 | 05.02 | blabl5 | 2 7 | 07.02 | blabla | 1 8 | 08.02 | blabl8 | 7 9 | 08.02 | blabla | 8 10| 10.02 | blabla | 7 11| 10.02 | blabla | 8 12| 01.02 | blabla | 7 13| 13.03 | blabla | 11 O ile dodawanie tego do bazy to pikuś to mam problem z wymyśleniem jak to wyświetlać, tak aby została zachowana kolejność post-odpowiedź_1-...-odpowiedź_n oraz data. No i wcięcia - tj post niższego poziomu, czyli odpowiedź żeby była wcięta (większy margin left) względem posta nadrzędnego. Jak to zrobić? Naprowadźcie mnie pls. Pętla w pętli była by rozwiązaniem tylko w przypadku pierwszym gdy wiemy że są tylko dwa rodzaje postów - główne i odpowiedzi. Ale w przypadku drugim może być odpowiedź do odpowiedzi, do odpowiedzi, do odpowiedzi i tak właściwie 100 razy. Czyli odpada pętla w pętli, w pętlei, w pętli... PS. Jeszcze nie ma żadnego kodu na papierze. Na razie wszystko dzieje się w mojej głowie ![]() EDIT: hmmm, chyba wymyśliłem.
To wyświetla posty... właściwie tylko traktuje każdą odpowiedź jako odpowiedź do 1 poziomu oraz powtarza wyświetlanie odpowiedzi jako post najwyższego poziomu. Czyli w skrócie - nie działa jak należy ![]() ![]() Nie wiem, może dodać w wewnętrznej pętli tablicę do której będę zapisywał ID wyświetlonego posta a następnie w pętli nadrzędnej sprawdzać czy Id jest w tablicy i jeśli tak to już tego rekordu nie wyświetlać? Ten post edytował sadistic_son 6.12.2024, 14:02:55 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dodaj kolumnę id_parent. Dla pierwszego przykładu posty o id 1/2/4 będą mieć wartość id_parent=null, id=7 id_parent=1, id=3/5 id_parent=2.
Ten post edytował trueblue 6.12.2024, 19:52:35 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 21:32 |