![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 203 Pomógł: 6 Dołączył: 11.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pewien kłopot, a już nie mam pomysłu jak to zrobić. Mam rekordy z bazy danych, które mają strukturę:
parent_id to ID rodzica, dla głównych jest to null, w innym wypadku jest to ID elementu nadrzędnego. Jeżeli rodzic, któregoś z elementu jest wyłączony to ma wszystkie pod nim dzieci wyłączyć lub usunąć z listy. Jak się za to zabrać? Byłbym zobowiązany za pomoc. Pozdrawiam, Largo |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze, ale sprawdzałeś takie zapytanie?
Kod SELECT * FROM `dh_segment` dh WHERE id = :idElementu AND is_visible = 1 AND (SELECT is_visible FROM `dh_segment` WHERE parent_id = 0 AND id = dh.parent_id) = 1 U mnie to działa na postaci: Kod SELECT * FROM `element` e WHERE e.visible=1 AND e.id=8 AND (SELECT visible FROM `element` WHERE visible=1 AND id = e.parent ) = 1
i wyświetla te elementy których rodzice są visible=1 a nie wyświetla tych których rodzice mają visible = 0 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 317 Pomógł: 58 Dołączył: 6.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli rekordy potomne faktycznie mają również być aktualizowane, to do tego użyłbym trigger ON UPDATE założony na tabelę, który zadba o automatyczne włączanie/wyłączanie potomków dla danego rodzica. Dobre na wypadek, gdyby dane z bazy pobierał inny system, na którego zapytania nie masz żadnego wpływu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:50 |