Drzewka w PHP [rzseattle] |
Drzewka w PHP [rzseattle] |
3.05.2004, 16:19:37
Post
#21
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
CZy ktos probowal pobrac sciezke do elementu drzewka ?
Czyli mamy dostac np: Kod array (
[0] => root [0] => element_roota [0] => element_elementu_roota ) Gdzie mamy takie drzewko: Kod root
| -- element_roota | -- element_elementu_roota Siedze juz od kilku godzin nd kodem i stanalem na tym - chyba czas odpoczac Jakby ktos mial SQLa do tej sciezki to byl bym wdzieczny za podrzucenie |
|
|
3.05.2004, 19:37:06
Post
#22
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
Nie no az takim wyjadaczem w SQLu nie jestem. Robie to zwyklym whilem pobieram rodzicow ( cutLevel pomiejszony o jedna cyfre ) dopoki nie dotre do korzenia. Zarzucilbym kodem ale juz operuje na dalszych stadiach rozoju tej teori (niestety nie mam czasu na arta) i kody by byly niekompatybilne.
-------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
3.05.2004, 19:41:07
Post
#23
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
No coz zostaje mi wlasnie takie rozwiazanie. Jak dojde jak jednym zapytaniem wydobyc taka sciezke to podrzuce kod. |
|
|
3.05.2004, 19:54:29
Post
#24
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 10.06.2003 Ostrzeżenie: (0%) |
ja najpierw na podstawie numerka generuje numerki wszystkich rodziców [ w php ] i wysyłam zapytanie sql gdzie w [where] są podane te id. dla zabezpieczenia daje [limit] ;-)
Seth : post wyzej jest moje pytanie o to samo ;-) |
|
|
3.05.2004, 19:57:24
Post
#25
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Zmeczenie robi swoje.. nie zauwazylem tego
|
|
|
11.05.2004, 17:51:30
Post
#26
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 14.06.2002 Ostrzeżenie: (0%) |
Mógłby ktoś zarzucić kodem jak rozwiązał ta ścieżkę? Głowię się nad tym i nie wiem jak to zrobić
|
|
|
11.05.2004, 19:34:01
Post
#27
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 10.06.2003 Ostrzeżenie: (0%) |
Majac dane numerek tego jednego, robisz na nim operacje :
ucinasz ostatnią niezerową liczbę i zamieniasz ja na zaero, zapisujesz w tablicy, dopóki nie osiagniesz 10000... Wtedy wszystkie elementy tablicy podajesz jako parametr dla where w zapytaniu : [sql:1:7d24544c0e] SELECT * FROM tree WHERE pid=$arr[0] OR pid=$arr[1] OR ... [/sql:1:7d24544c0e] |
|
|
12.05.2004, 18:25:50
Post
#28
|
|
Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) |
i o takie drzewka moge napisac system frum hyba, nie
-------------------- |
|
|
12.05.2004, 19:33:24
Post
#29
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
invx: jeszcze jeden taki post i Twoje nabijanie postów zakończy Administrator.
Jeżeli masz problem, to go sprecyzuj. Od rozmów o dupie Maryny jest hydepark. -------------------- |
|
|
12.05.2004, 20:07:04
Post
#30
|
|
Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) |
przeczytalem artykul, i z niego wywnioskowuje, ze mozna drzewka zastosowac do napisania skryptu do forum. tylko nie spotkalem sie z forum na drzewkach, i nie wiem cy dobrze mysle. :?
P.S. na hydeparku mialem zapytac o kilka rzezcy ale sie wlasnie powstrzymuje, zeby nie byc osadzonym o nabijanie... -------------------- |
|
|
15.05.2004, 10:41:39
Post
#31
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%) |
No moim zdaniem metoda w tym artykule jest troche ograniczona (glebia). Ja od dosc dawna stosuje metode 5 zaprezentowana na http://www.depesz.pl/various-sqltrees.php.
w niej nie ma tego typu ograniczen i jest moim zdaniem lepsza. bardzo proste przenoszenie podgrup do innej nadgrupy itd itp -------------------- Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
|
|
|
16.05.2004, 16:13:25
Post
#32
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 14.06.2002 Ostrzeżenie: (0%) |
Ale trzeba mieć Postgresa a nie każdy go ma.
|
|
|
27.05.2004, 20:32:39
Post
#33
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 6.02.2004 Ostrzeżenie: (0%) |
Zgadza sie, zeby metoda depesza dzialala pgsql musi byc. a ma ktos moze wersje na mysql-a? bylbym bardzo wdzwieczny . Bo potrzebne mi sa drzewka, ale tak sie zastanawiam, bo jednak to ograniczenie do 9 dzieci to jednak troche malo w katalogu produktow.
Chetnie bym to sam przerobil, ale jeszcze nie ten czas, nie ta pora (chociac moze wcale az takie to trudne nie jest?). pozdrawiam |
|
|
27.05.2004, 21:03:56
Post
#34
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
Niestety nie mam czasu narazie aby dostawic druga czesc arta bo goni mnie wszystko opocz biegunki . Ale widze ze komus moze sie to przydac (i wszyscy wieszaja psy na klasie do rozwiniecia) wiec umieszczam wersje obslugujaca 99 cioro dzieci , a jesli ktos zechce to w piec minut przerobi ja na wersje z mozliwoscia dopisania 999 cioro dzieci do rodzica. Klasa nie wyglada jeszcze tak jakbym chcial ale mysle ze wybaczycie mi drobne niedociagniecia . Jak tylko na uczelni zostawia mnie w spokoju to opisze klase , sprawie by jakos wygladala i dodam pare przydatnych metod.
i dodajcie kolumne depth (int) do poprzedniej tabeli -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
28.05.2004, 10:06:58
Post
#35
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%) |
jakiego znow postrgresa? ja ta metode uzylem w MySQL ... i zamiast niektorych operacji na bazie przenioslem je do php ... proste i skuteczne
-------------------- Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
|
|
|
16.11.2004, 14:39:37
Post
#36
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 19.10.2004 Ostrzeżenie: (10%) |
Moze mi ktos podpowiedziec jak zmodyfikowac ten przyklad zeby uzyskac cos takiego:
Windows - NoNT -- Win95 -- Win98 -- Win Milenium - NT Linux Chce uzyc tego do zrobienia menu. Najpierw musze pobrac id glownych galezi (Windows, Linux) by wyswietlic je jako menu glowne. Potem chce by po kliknieciu na dana galaz wybrane zostaly kolejne podmenu (windows-> NoNT i NT) i w kolejnym kroku znowu po kliknieciu na NoNT maja sie rozwinac kolejno win95,98 i me. Po kliknieciu na np. na me ma sie otworzyc juz strona z zawartoscia. Mam zamiar w bazie przechowywac nazwy plikow php (lub cale linki) do ktorych ma sie odwolac galaz ktora jest ostatnia (win 95,98,me) i otwierac okno z zawartoscia. Do tego oczywiscie menu ma miec rozne poziomy zagniezdzenia np. po kliknieciu w NT zamiast rozwijac galaz ma juz pokazywac sie strona. Ratuje mnie samo przerobienie selecta lecz idealnym byloby dorzucenie kawalka kodu ktory juz realizuje to menu wraz zwybieraniem linkow Ten post edytował 123tomek 16.11.2004, 14:40:18 |
|
|
16.11.2004, 15:00:16
Post
#37
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) |
-------------------- |
|
|
17.01.2005, 21:26:34
Post
#38
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 17.01.2005 Ostrzeżenie: (0%) |
Witam!
Od wczoraj nad tym siedze, ale za nic nie moge dojsc dlaczego nie dziala mi dodawanie nowego dziecka :/ Moge zakladac glowne kategorie, ale gdy probuje to zrobic poprzez funkcje newChild nie dzieje sie nic. Probowalem dawac zapytania na echo itd, ale nie ma tam bledu - wszystkie funkcje zwracaja true. Funkcje wywoluje tak: $tree->newChild('Amerykanskie', 1); // Bo chce dodac np. subkategorie 'Amerykanskie' do kategorii samochody (ID 1). Bardzo prosze o pomoc - jest to dla mnie bardzo wazne. Z gory dzieki! |
|
|
22.01.2005, 14:33:06
Post
#39
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
sugestia nr 1
Zmien metode newCHild na
Zobacz czy wyprintowane zapytanie dziala na bazie danych czy nie wywala bledow. I co wazniejsze czy zwraca jakis rezultat. Jesli nie to: sugestia nr 2 Jesli mozesz to daj link do zrzutu bazy. -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
22.01.2005, 15:19:07
Post
#40
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 17.01.2005 Ostrzeżenie: (0%) |
Tak jak mowie probówałem już dawać zapytanie na ekran.. Wkleje Ci to co zwraca wywolanie jej poprzez $tree->newChild('Amerykanskie', 1); :
Kod select 0, 'Amerykanskie', RPAD( CONCAT( '' ,LPAD( SUBSTRING(g.level, (0*2)+1, 2 ) + 1, 2, '0')), 0, '0'),0+1 FROM groups AS g LEFT JOIN groups AS p ON CONCAT(g.cluster,'|',RPAD( CONCAT( '' ,LPAD( SUBSTRING(g.level, (0*2)+1, 2 ) + 1, 2, '0')), 0, '0')) = CONCAT(p.cluster,'|',p.level) where g.cluster = 0 and g.level like CONCAT( '','%') and (0*2) + 2 <= 0 and p.level is null LIMIT 1 Zrzut bazy: Kod CREATE TABLE `groups` ( `id` int(11) NOT NULL auto_increment, `cluster` int(11) NOT NULL default '0', `name` varchar(100) NOT NULL default '', `level` decimal(10,0) NOT NULL default '0', `depth` int(11) NOT NULL default '0', UNIQUE KEY `id` (`id`) ) TYPE=MyISAM AUTO_INCREMENT=48; -- -- Dumping data for table `groups` -- INSERT INTO `groups` VALUES (1, 0, 'Samochody', 0, 0); Z góry dzięki za pomoc, gdyż ten błąd blokuje mi pisanie pewnego ważnego modułu :]. |
|
|
Wersja Lo-Fi | Aktualny czas: 10.11.2024 - 18:50 |