![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Postanowiłem pobawić się omawianym już kilkakrotnie systemem tworzenia drzew w bazie (np. http://forum.php.pl/viewtopic.php?t=2625 i http://www.depesz.pl/various-sqltrees.php - 5 sposóB) przy pomocy MySQL.
Początkowo wszystko było ok. Dodawanie pozycji - banalne. Przeglądanie - w te i we wte - również. Jednak trafiłem na problem. Zastanawiam się, jak efektownie usuwać gałęzie. Oczywiście można pobrać dane wszystkich potomków, i w pętli, lub przy pomocy IN usunąć je. Jednak wszyscy mówili, że można to zrobić za pomocą pojedynczych zapytań. No i mam problem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Wymyśliłem takie zapytanie Cytat DELETE FROM powiazania
USING powiazania AS p LEFT JOIN powiazania as p2 ON ( p.first_id = p2.second_id ) WHERE p2.first_id = 1 jednak nie działa ono do końca poprawnie, gdyz za szybko usuwa sobie niektóre wiersze, i doprowadza to do tego, że niektóre pozostają. Nie mam również żadnego pomysłu, jak zmontować przenoszenie gałęzi (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Struktura bazy i przykładowe dane :arrow: http://mstudio.nq.pl/php_pl/inne/test_drzewko.sql |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
co do pierwszego to może spróbuj najpierw spróbuj stworzyć bazę a dopiero potem uruchomić postamstera.
pg_ctl służy do zarządzania bazą - np pg_ctl -d c:/ble/ble/ble {stop|start} to drugie to nie wiem co do drugiego to nie wystarczy Ci np. coś takiego[sql:1:ce9e95749b]create view struct as select get_path( id ), id from categories;[/sql:1:ce9e95749b]to działa niestety tylko na postgresqlu a funkcja get_path jest napisana w plpgsql'u... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.09.2025 - 18:54 |