Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablica wielowymiarowa
zak293
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 9.08.2006

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


Witam,
mam w bazie danych taką strukturę:
  1. id | name | parent_id


i chcę wygenerować za pomocą jednego zapytania tablicę:
  1. $menu = array(
  2. 'pozycja 1',
  3. 'pozycja 2'=>array(
  4. 'pozycja 2.1',
  5. 'pozycja 2.2'=>array(
  6. 'pozycja 2.2.1',
  7. 'pozycja 2.2.2'
  8. ),
  9. 'pozycja 2.3'
  10. )
  11. );


Prosiłbym o sugestie w jaki sposób otrzymać taką tablicę.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Kedan
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 20.07.2007

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


Z tego co wiem - nie da się. Możesz sobie poczytać o przetrzymywaniu drzew logicznych czy grafów tabelach - jest tego trochę na google. Najprościej jednak będzie z php pobierać jakis_root, a potem rekurencyjnie potomków, jeśli istnieją. Jest to jednak dość kosztowne i powolne rozwiązanie, więc dla np.: Menu dobrze byłoby "przetworzony" wynik trzymać w cache'u zamiast dobierać się do bazy danych przy każdym odświeżeniu strony.

Ten post edytował Kedan 28.09.2011, 14:26:58
Go to the top of the page
+Quote Post
lukaskolista
post
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


mozesz to osiagnac dodajac kolumny lft (left) i rgt(right). Tu masz opisane jak to osiagnac. http://piotrekkr.info/2009/08/me-vs-tree-c...-i-php/#more-45 - tutaj jest troche wiecej.

Ten post edytował lukaskolista 28.09.2011, 21:54:27
Go to the top of the page
+Quote Post
zak293
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 9.08.2006

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


Dzięki za odpowiedzi wink.gif
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: 21.08.2025 - 01:35