![]() |
![]() |
![]()
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 ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Wykonuję to zapytanie przez PHP. Gdy wykonuję w panelu phpMyAdmin wyświetla poprawnie tabelę nazw z przypisanymi wartościami zagłębienia, natomiast poprzez PHP już nie.
Kod $zapytanie = " SELECT node.nazwa, (COUNT(parent.id) - 1) AS depth FROM kategorie AS node, kategorie AS parent WHERE node.lewa BETWEEN parent.lewa AND parent.prawa GROUP BY node.id ORDER BY node.lewa; "; $sql = mysql_query($zapytanie); $sql = mysql_fetch_assoc($sql); print_r($sql); po tym wyświetla mi tablicę tylko z pierwszym elementem z bazy... Kod Array ( [nazwa] => kat1 [depth] => 0 ) zrzuty z phpMyAdmin: ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
$sql = mysql_query($zapytanie); $sql = mysql_fetch_assoc($sql); print_r($sql);[/code] po tym wyświetla mi tablicę tylko z pierwszym elementem z bazy... No bo pobierasz tylko jeden rekord. mysql_fetch_assoc($sql); ma latać w pętli ![]() @Crozin, znów oszukujesz. Najpierw trzeba obliczyć depth dla miejsca docelowego i depth węzła który przenosisz. Dopiero potem możesz obliczyć różnicę i wykonać zapytanie, które pokazałeś. Niby drobiazgi, ale jednak ![]() Ten post edytował JoShiMa 12.04.2011, 21:52:40 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 04:18 |