Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dynamiczne generowanie DRZEWKA z bazy
luckyluc
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.04.2006

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


Ostatnio przegladalem troche materialow na temat tworzenia menu drzewiastego. Tabele oparlem na prostej metodzie parenta.


ID | PARENT | NAZWA GRUPY
1 | 0 | PRZYGODOWE
2 | 1 | Indiana Jones
3 | 1 | Tomb Rider
4 | 1 | Skarb Narodów
5 | 0 | SENSACYJNE
6 | 5 | 60 sekund
7 | 5 | Twierdza
8 | 5 | Negocjator
9 | 1 | DLA DZIECI
10 | 9 | Reksio
11 | 9 | Teletubisie smile.gif


---

- PRZYGODOWE
--- Indiana Jones
--- Tomb Rider
--- Skarb Narodów

--- DLA DZIECI
------ Reksio
------ Teletubisie smile.gif

- SENSACYJNE
--- 60 sekund
--- Twierdza
--- Negocjator

---


Dziala dobrze, ale znalazlem fajny skrypt, ktory zwija podgrupy i wyswietla glowne kategorie. Po kliknieciu pokazuja sie dopiero podgrupy. Ponizej

przedstawiam kod:


  1. <ul id="tree0" class="tree">
  2. <li><a>PRZYGODOWE</a>
  3. <ul>
  4. <li><a href="...">Indiana Jones</a></li>
  5. <li><a href="...">Tomb Rider</a></li>
  6. <li><a href="...">Skarb Narodów</a></li>
  7.  
  8.  
  9. <li><a>DLA DZIECI</a>
  10. <ul>
  11. <li><a href="...">Reksio</a></li>
  12. <li><a href="...">Teletubisie :)</a></li>
  13. </ul>
  14. </li>
  15.  
  16. </li>
  17. </ul>
  18.  
  19.  
  20.  
  21. <li><a>SENSACYJNE</a>
  22. <ul>
  23. <li><a href="...">60 sekund</a></li>
  24. <li><a href="...">Twierdza</a></li>
  25. <li><a href="...">Negocjator</a></li>
  26. </ul>
  27. </li>
  28. </ul>




Chcialem dostosowac zapytanie wyciagajace dane z bazy w taki sposob, aby dynamicznie powstawala struktura jak przedstawiona powyzej. Moze ktos sie juz sie z tym spotkal. Z gory dziekuje za pomoc.


Ten post edytował luckyluc 23.07.2007, 23:26:42
Go to the top of the page
+Quote Post
juzwa
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 10.07.2006

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


ja to robię tak
1 - pobieram rekordy z bazy ustawione wg ID RODZICA
2 - za pomocą takiej funkcji ustalam sobie drzewo

  1. <?php
  2. /**
  3. *id - pierwsze id pierwszego elementu głównego
  4. *arr - tablica wyników kategorii
  5. *start - od którego elementu ma się zacząć pętla
  6. */
  7. function zrobDrzewo($id,$arr,$start)
  8. {
  9. static $idArr=array();
  10. for($i=0; $i<count($arr); $i++)
  11. {
  12. if($arr[$i]['PARENT']==$id)
  13. {
  14. $curr_id=$arr[$i]['ID'];
  15. $idArr[$i]=$i;
  16. zrobDrzewo($curr_id, $arr, $i+1);
  17. }
  18. }
  19. return $idArr;
  20.  
  21. }
  22. ?>


Ten post edytował juzwa 24.07.2007, 08:04:44
Go to the top of the page
+Quote Post
luckyluc
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.04.2006

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


Do wypisanie struktury drzewka mam funkcje. Problem mam z przygotowaniem zapytania / funkcji, ktora utworzy strukture, ktora jest ponizej z <ul> i <li>


  1. <ul id="tree0" class="tree">
  2. <li><a>PRZYGODOWE</a>
  3. <ul>
  4. <li><a href="...">Indiana Jones</a></li>
  5. <li><a href="...">Tomb Rider</a></li>
  6. <li><a href="...">Skarb Narodów</a></li>
  7.  
  8.  
  9. <li><a>DLA DZIECI</a>
  10. <ul>
  11. <li><a href="...">Reksio</a></li>
  12. <li><a href="...">Teletubisie :)</a></li>
  13. </ul>
  14. </li>
  15.  
  16. </li>
  17. </ul>
  18.  
  19.  
  20.  
  21. <li><a>SENSACYJNE</a>
  22. <ul>
  23. <li><a href="...">60 sekund</a></li>
  24. <li><a href="...">Twierdza</a></li>
  25. <li><a href="...">Negocjator</a></li>
  26. </ul>
  27. </li>
  28. </ul>
Go to the top of the page
+Quote Post
sntObar
post
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 10.01.2005

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


Cytat(juzwa @ 24.07.2007, 07:04:05 ) *
ja to robię tak
1 - pobieram rekordy z bazy ustawione wg ID RODZICA
2 - za pomocą takiej funkcji ustalam sobie drzewo

  1. <?php
  2. /**
  3. *id - pierwsze id pierwszego elementu głównego
  4. *arr - tablica wyników kategorii
  5. *start - od którego elementu ma się zacząć pętla
  6. */
  7. function zrobDrzewo($id,$arr,$start)
  8. {
  9. static $idArr=array();
  10. for($i=0; $i<count($arr); $i++)
  11. {
  12. if($arr[$i]['PARENT']==$id)
  13. {
  14. $curr_id=$arr[$i]['ID'];
  15. $idArr[$i]=$i;
  16. zrobDrzewo($curr_id, $arr, $i+1);
  17. }
  18. }
  19. return $idArr;
  20.  
  21. }
  22. ?>

Testowalem ten kod i niestety niedziala. Zauwazylem tez ze bez kozery w wywolaniu funkcji wystepuje zmienna $start, bo przeciez nigdzie w kodzie funkcji nie zostaje ona wywolana.

Zawartosc tablicy prezentuje sie nastepujaco:

  1. <?php
  2. $categories = array (array ( 
  3. 'id' => 1,
  4. 'parent_id' => 7,
  5. 'position' => 2,
  6. 'title' => 'pierwsza'),
  7. array ( 
  8. 'id' => 3,
  9. 'parent_id' => 7,
  10. 'position' => 3,
  11. 'title' => 'trzecia'),
  12. array ( 
  13. 'id' => 5,
  14. 'parent_id' => 7,
  15. 'position' => 1,
  16. 'title' => 'piata'),
  17. array ( 
  18. 'id' => 7,
  19. 'parent_id' => 0,
  20. 'position' => 1,
  21. 'title' => 'siodma'));
  22. ?>

Jakbys mial chec poprawic, wrzuc tu update winksmiley.jpg.

Ten post edytował sntObar 24.07.2007, 19:01:13
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Do wypisanie struktury drzewka mam funkcje. Problem mam z przygotowaniem zapytania / funkcji, ktora utworzy strukture, ktora jest ponizej z <ul> i <li>
No to skoro masz tę funkcję to jaki problem przerobic ja byc tworzylo ul i li tak jak chcesz? Pokaz te funkcje


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:01