The Night Shadow
10.03.2006, 23:42:31
Struktura tabel to:
kategorie:
id (id kategorii - autonmeracja)
id_matki (id kategorii pod którą podlega)
tytul (tytul kategorii)
zdjecia:
id (id zdjęcia)
id_matki (id kategorii pod którą podlega zdjęcie)
data (data dodania zdjęcia)
Bez problemu stworzyłem system dodawania poszczególnych kategorii, edycji ich nazw. Stanąłem jednak nad pewnym problemem. Otórz chciałbym stworzyć możliwość usuwania kategorii, ale pojawia się problem. Jeżeli mamy kategorie które wyglądają tak:
Kategoria 1 (id=1, id_matki=0)
......podkategoria 1 (id=2, id_matki=1)
......podkategoria 2 (id=3, id_matki=1)
............podkategoria A (id=4, id_matki=3)
............Podkategoria B (id=5, id_matki=3)
..................Zdjęcie 1 (id=1, id_matki=5)
..................Zdjęcie 2 (id=2, id_matki=5)
Jeżeli będe chciał usunąc podkategorię 2 funkcja musiałaby usuwać wszystkie potkategorie wraz z plikami podpiętymi pod nie, tudzież zmieniać id ich podpięcia do innej kategorii (możliwość przenoszenia zdjęc do innej kategorii przed usunięciem aktualnej).
Siedzę nad tym od wczoraj i nie potrafię tego logicznie rozwiązać. Czy ma ktoś jakiś pomysł?
Yacho
11.03.2006, 00:17:26
pobierasz parenta kategforii ktora chcesz wywalic
pobierasz childy pierwszego stopnia tej kategorii
wywalasz kategorie i przypisujesz childom parenta
jesli chcesz ywalic wszystkie - pobierasz najpierw wszystkie w dol rekurencyjnie i wywalasz...

W twoim przykladzie struktura jest zła ponieważ id nie jest unikalne a powinno byc
The Night Shadow
11.03.2006, 00:30:57
No właśnie... stworzyłem coś takiego ale kiedy kiknąc na usunięcie kategorii to usuwa wszystkie prócz najwyzszej w chierarhii...
kat 1
...podkat 1
...podkat 2
......podkat 3
Kiedy kliknąc na usuń przy podkat 3 pozostaje tylko kat1
<?php
function usuwaniee($nr)
{
$poszukiwanie_kategorii = mysql_query("SELECT * FROM galerie WHERE id_matki='$nr'"); while ($poszukiwanie_kategorii and
$wiersz = mysql_fetch_assoc($poszukiwanie_kategorii)) {
$wyszukiwanie_zdjec = mysql_query("SELECT * FROM zdjecia WHERE id_matki='".$wiersz["id"]."'"); {
unlink('galerie/'.$pole["id"].'.jpg'); unlink('galerie/'.$pole["id"].'small.jpg'); }
$usuwanie = mysql_query("DELETE FROM galerie WHERE id='".$wiersz['id']."'"); usuwaniee($wiersz['id']);
}
}
usuwaniee($ide);
?>
Znalazłem byka :- ) Dla zaiteresowaych gadu: 1197998