Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodawanie danych do tablicy rekursywnej, w odpowiednie miejsce
Sztef89
post
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ę:

  1. $dane = array ( "14" => array ("ID" => "14", "PARENT" => "0", "18" => array ("ID" => "18", "PARENT" => "14"),"19" => array ("ID" => "19", "PARENT" => "14")), "24" => array ("ID" => "14", "PARENT" => "0"));
  2.  
  3. print_r($dane);


  1. Array
  2. (
  3. [14] => Array
  4. (
  5. [ID] => 14
  6. [PARENT] => 0
  7. [18] => Array
  8. (
  9. [ID] => 18
  10. [PARENT] => 14
  11. )
  12.  
  13. [19] => Array
  14. (
  15. [ID] => 19
  16. [PARENT] => 14
  17. )
  18.  
  19. )
  20.  
  21. [24] => Array
  22. (
  23. [ID] => 14
  24. [PARENT] => 0
  25. )
  26.  
  27. )


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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sztef89
post
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

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


Nom ale to nadal 2 zapytania. Czyli się nie da odczytać wartość AI tej kolumny podczas robienia INSERTa ?
Oczywiście założyłem w algorytmie wyświetlającym ze jak przekroczy ileś tam to nie robi już większego marginesu (IMG:style_emoticons/default/smile.gif)

Jestem nowy w tym temacie, na razie w moim pomyślę nie widzę żadnych wad. Mógłbyś napisać coś więcej dlaczego jesteś przeciwny takim drzewom ?


Udało mi się zrobić to na jednym zapytaniu:
  1. INSERT INTO `komentarz` (`key`, `deph`, `tresc`) SELECT MAX(id)+1, 0, '$tresc' FROM komentarz


--
Robię system komentarzy do pracy inżynierskiej. Za jakieś dwa dni skończę i będziecie mogli zobaczyć jak działa (IMG:style_emoticons/default/smile.gif) Jak będą chętni to zamieszczę linka aby zobaczyć jak powyższe rozwiązania działają w praktyce (IMG:style_emoticons/default/smile.gif)

Ten post edytował Sztef89 11.12.2011, 17:25:47
Go to the top of the page
+Quote Post
marins
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 4
Dołączył: 12.07.2003

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


Cytat(Sztef89 @ 11.12.2011, 15:26:51 ) *
Mógłbyś napisać coś więcej dlaczego jesteś przeciwny takim drzewom ?

Wówczasz dla mnie całość jest nieczytelna - nie lubię jak mi coś lata prawo lewo. Łatwo zgubić wątek - rozwiązanie ze zwykłą listą jest przejrzyste (wizualnie).
Nie widzę sensu wątkowania - to nie forum (IMG:style_emoticons/default/biggrin.gif)

Go to the top of the page
+Quote Post
Sztef89
post
Post #4





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

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


Cytat(marins @ 11.12.2011, 22:32:24 ) *
Wówczasz dla mnie całość jest nieczytelna - nie lubię jak mi coś lata prawo lewo. Łatwo zgubić wątek - rozwiązanie ze zwykłą listą jest przejrzyste (wizualnie).
Nie widzę sensu wątkowania - to nie forum (IMG:style_emoticons/default/biggrin.gif)


Ahaaa, Ty jesteś przeciwko robienia marginesów dla odpowiedzi, a nie przeciw rozwiązaniu jak dopasowuje odpowiedzi do "rodziców", dobrze zrozumiałem ? (IMG:style_emoticons/default/smile.gif) Moim zdaniem dodanie niewielkiego marginesu bardzo pomaga w orientacji gdy się czyta kilka dyskusji w komentarzach (IMG:style_emoticons/default/smile.gif) Weźmy np.: bardzo dobry system komentarzy DISQUS, nie dość, że ma wcięcia to jeszcze możemy chować dyskusje, które nas nie interesują, moim zdaniem rozwiązania w DISQUS są genialne i bardzo dobrze się czyta komentarze. Mógłbym jedynie ponarzekać na ogromne marginesy do kolejnych odpowiedzi (aż 50px !). Jakby nie to, że ten system stoi na ich serwerze i nie da się postawić go na swoim serwerze, to że integracja z własną bazą użytkowników jest możliwa dopiero w wersji płatnej (w bardzo promocyjnej cenie 299$/miesiąc), to bym na pewno się zdecydował na ten system.
Ale widzę, że dobrze zrobiłem robiąc ten system samemu. Mam pewność, bynajmniej, że to będzie bardzo wydajnie chodziło.

Ten post edytował Sztef89 11.12.2011, 23:38:39
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 23:50