![]() |
![]() |
![]()
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: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat A co to jest za tabela ? - pamiętaj - jeżeli robisz własne usprawnienia to podawaj jakie bo przecież w głowie Ci nie siedzimy.
Używam tylko innych nazw: file_ref - tabela z referencjami file_name - tabela z nazwami plików anc_id - id przodka (first_id) desc_id - id potomka (second_id) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 02:00 |