[PHP] Nested sets - jak zbudować drzewo (left, right)?
: wt sie 28, 2007 12:24 pm
Potrzebuję skryptu, który ustawi automatycznie pola left i right na podstawie:
http://pastebin.4programmers.net/2953 - ta funkcja zajmuje się ponownym zapisem ilości pozycji w kategoriach. Czy dałoby się podpiąć tutaj również uaktualnianie tych pól? Funkcja:
- pobiera wszystkie kategorie z bazy
- liczy zawartość (I FOR)
- iteruje po każdej kategorii (II FOR)
--- wyszukuje "rodziców" i dodaje im swoją liczbę pozycji (WHILE)
Jeśli nie da się podpiąć tego, dobra będzie też osobna funkcja (a może nawet lepiej?). Tylko w jaki sposób napisać odpowiedni algorytm? Najlepiej, by nie wykonywał osobnego zapytania dla każdej kategorii jak w przykładzie na SitePoint. LEFT oznacza też kolejność (zapytanie do wyświetlenia listy kategorii zawiera: ORDER BY left), choć przebudowa ewentualnie może opierać się na tytułach (alfabetycznie).
Kod: Zaznacz cały
ID | ID wyższej kategorii- pobiera wszystkie kategorie z bazy
- liczy zawartość (I FOR)
- iteruje po każdej kategorii (II FOR)
--- wyszukuje "rodziców" i dodaje im swoją liczbę pozycji (WHILE)
Jeśli nie da się podpiąć tego, dobra będzie też osobna funkcja (a może nawet lepiej?). Tylko w jaki sposób napisać odpowiedni algorytm? Najlepiej, by nie wykonywał osobnego zapytania dla każdej kategorii jak w przykładzie na SitePoint. LEFT oznacza też kolejność (zapytanie do wyświetlenia listy kategorii zawiera: ORDER BY left), choć przebudowa ewentualnie może opierać się na tytułach (alfabetycznie).