
Postaram sie jasno opisac problem, choc troche to zagmatwane...
Mam tabele modules ktora wyglada tak:

i teraz musze wykasowac (czyli ustawic module_delete na 1) kilka modulow. Zalozmy ze kasuje modul o id: 2
wiec musze ustawic module_delete na 1 wszedzie tam gdzie module_id = 2 oraz module_parentid = 2
module_parentid mowi kto jest "rodzicem" danego modulu. Wiec np. nacl_users jest w nacl_administration.
Wiec zapytanie sql bedzie wygladalo mniej wiecej tak:
<?php $query = 'UPDATE modules SET `module_deleted` = "1" WHERE '; foreach ($idList as $key => $value) { $query .= "module_id = '".$value."' OR module_parentid = '".$value."'"; } ?>
idList to poprostu lista tych modulow do wykasowania. przyjmijmy ze ta tablica ma 1 wartosc = 2.
No i do tego momentu wszystko jest latwe. Schody zaczynaja sie teraz...
kazdy modul ma cos takiego jak module_child, czyli czy ten modul ma dziecko (czy ma w sobie jakies inne moduly) czy nie ma. 0 oznacza ze nie ma, a 1 ze ma.
Czyli wracajac do przykladu, jezeli kasuje modul o id 2 to musze ustawic modulowi mng_modules - module_child = 0, bo juz nie ma w sobie zadnych dzieci.
Przy kasowaniu jednego modulu nie ma problemu, ale np. przy kasowaniu 10 ?
Musialbym robic zapytanie dla kazdego id z idList sprawdzac kto jest jego rodzicem, nastepnie w drugim zapytaniu sprawdzac czy ten rodzic ma jeszcze jakies inne dzieci oprocz tego ktore wlasnie skasowalem, jak ma to ustawiam na 1 jak nie ma to ustawiam module_child na 0. tylko ze przy kasowaniu 10 modulow, mam wtedy 20 zapytan.
Bede wdzieczny za wszelka pomoc i rady,
chetnie odpowiem na wszelkie pytania jezeli brakuje jakis informacji
Pozdrawiam,
Tomek