Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nested Sets - przenoszenie węzłów i liści góra/dół
grz16w
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.07.2009
Skąd: Rzeszów

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


Witam.

Czy ktoś wie lub posiada przykład działającej poprawnie funkcji przesuwania liści i węzłów w strukturze Nested Sets wewnątrz jednej gałęzi (rodzica)? Mam tabelę posiadającą kolumny `id`, `nazwa`, `lft`, `rgt`, `parent`. W jaki sposób zamienić miejscami dwa węzły lub liście wewnątrz tego samego rodzica (uwzględniając, że te węzły mogą posiadać również swoje dzieci itd.)? Z góry dziękuję serdecznie za odpowiedzi (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Cytat
To podzapytanie to o ile się nie mylę (już trochę późno jest) jeszcze gorszy pomysł.
Wręcz przeciwnie. Przy większych bazach jest szybsze.
Aż zrobię testy jutro czy pojutrze jak znajdę chwilę czasu. Wyniki oczywiście udostępnię.
Cytat
Za to przy Twoim sposobie każdorazowo musi zaśmiecać kod wyliczeniami nowych wartości depth przy przenoszeniu gałęzi. Przenosząc gałąź do innej lokalizacji musisz obliczyć depth dla tej lokalizacji. różnicę między wartością bieżącą a doelową i przeliczyć depth wszystkich elementów przenoszonej gałęzi. Rzeczywiście. Mniej skomplikowane. No sorry ale nie przekonasz mnie, że to jest jakiekolwiek ułatwienie.
Na dobrą sprawę to jedyne co trzeba zrobić to:
  1. UPDATE ... SET depth = depth + 123 WHERE ...;
Gdzie 123 to różnica dla korzenia przenoszonej gałęzi. WHERE określa jeszcze po prostu całą przenoszoną gałąź.
Cytat
Nie wiem czemu ale odnoszę wrażenie, że znasz zagadnienie jedynie z teorii.
Nie wiem czemu ale odnoszę wrażenie, że jest dokładnie odwrotnie albo doszło tutaj do jakiegoś nieporozumienia między nami. (IMG:style_emoticons/default/wink.gif)

@grz16w: mysql_fetch_array zwraca kolejny (jeden) wynik z pobranych. W manualu masz przykład użycia.

Cytat
Nie wiem czemu ale odnoszę wrażenie, że znasz zagadnienie jedynie z teorii.
Przepraszam, przyzwyczajenie. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- grz16w   Nested Sets - przenoszenie węzłów i liści góra/dół   10.04.2011, 22:42:12
- - Crozin   Zanim zapomnę: o ile dobrze pamiętam phpBB3 albo j...   10.04.2011, 23:13:45
- - jang   http://www.phpriot.com/articles/nested-trees-2/7 ...   11.04.2011, 08:18:26
- - JoShiMa   Cytat(grz16w @ 10.04.2011, 22:42:12 )...   11.04.2011, 10:24:51
|- - grz16w   Cytat(JoShiMa @ 11.04.2011, 11:24:51 ...   11.04.2011, 15:13:30
|- - JoShiMa   Cytat(grz16w @ 11.04.2011, 15:13:30 )...   11.04.2011, 21:38:11
|- - grz16w   Cytat(JoShiMa @ 11.04.2011, 22:38:11 ...   11.04.2011, 22:02:31
|- - JoShiMa   Cytat(grz16w @ 11.04.2011, 22:02:31 )...   11.04.2011, 22:37:33
- - Crozin   Można ale jest to dosyć skomplikowane, a trzymanie...   11.04.2011, 22:08:23
- - Crozin   @JoShiMa: Szkoda tylko, że nie dodałeś że dynamicz...   11.04.2011, 22:59:11
|- - JoShiMa   Cytat(Crozin @ 11.04.2011, 22:59:11 )...   11.04.2011, 23:08:01
- - Crozin   CytatLub podzapytania. I nie odwracaj kota ogonem....   11.04.2011, 23:32:32
|- - JoShiMa   Cytat(Crozin @ 11.04.2011, 23:32:32 )...   11.04.2011, 23:38:53
- - wiewiorek   Joshima napisal: "@Crozin naucz się wreszcie ...   12.04.2011, 07:55:05
|- - JoShiMa   Cytat(wiewiorek @ 12.04.2011, 07:55:0...   12.04.2011, 09:24:17
- - grz16w   Więc tak.. Użyłem metody: CytatSELECT node.name, ...   12.04.2011, 10:39:37
- - JoShiMa   A to zapytanie wywołujesz w bazie czy w skrypcie P...   12.04.2011, 11:03:46
- - grz16w   Wykonuję to zapytanie przez PHP. Gdy wykonuję w pa...   12.04.2011, 11:27:00
|- - JoShiMa   Cytat(grz16w @ 12.04.2011, 11:27:00 )...   12.04.2011, 21:52:17
- - Crozin   CytatCytatTo podzapytanie to o ile się nie mylę (j...   12.04.2011, 16:53:32
- - Crozin   Nic nie oszukuję. Przecież przy przenoszeniu i tak...   12.04.2011, 21:55:07


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: 27.12.2025 - 11:39