![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam pewną zagwozdkę, chcę zrobić coś takiego
Kategoria gł1 podkategoriaA 1.publikacja (link Word lub pdf) wielkość pliku, data 2 publikacja (link Word lub pdf) wielkość pliku, data | LINK wyświetl całą zawartość podkategoriiA. | podkategoriaB 1.publikacja (link Word lub pdf) wielkość pliku, data 2 publikacja (link Word lub pdf) wielkość pliku, data 3 publikacja (link Word lub pdf) wielkość pliku, data 4 publikacja (link Word lub pdf) wielkość pliku, data 5 publikacja (link Word lub pdf) wielkość pliku, data | LINK wyświetl całą zawartość podkategoriiB. | Kategoria gł2 1.publikacja (link Word lub pdf) wielkość pliku, data 2 publikacja (link Word lub pdf) wielkość pliku, data | LINK wyświetl całą zawartość kategorii gł2. | A więc chodzi o to, że chcę na stronie umieścić pliki do pobrania, przy czym chcę aby od razu były widoczne i kategorie główne, które mogą zawierać odnośniki do plików(publikacji) jak i podkategorie, oraz powiedzmy widocznych 5 najnowszych publikacji, a pod spodem link do reszty publikacji z danej kategorii/podkategorii po kliknięciu którego przechodzi się do całego spisu publikacji z danej kategorii. Czyli zdaje się dwie tabele (lub trzy), jedna tabela przechowuje dane dotyczące plików, druga tabela przetrzymuje kategorie i podkategorie, ewentualnie osobno tabela z kategoriami i podkategoriami(?). Czy dobrze kombinuję? W PHP jestem laikiem staram się coś nauczyć lecz ja muszę stopniowo rozgryzać koncepcję, a wiele przykładów jest od razu z grubej rury, które są na tyle skomplikowane, że logicznie nie potrafię ich rozpracować i jednocześnie poznać zasad działania. Głownie mam niejasność co do tabeli kategorii i podkategorii, czy to ma być w jednej tabeli czy ma to być jednak rozbite na dwie tabele? Bo za chiny ludowe nie wiem jak to można wyświetlic mając mysql> select * from category; +----+----------+-------------+ | id | deep | name | +----+------+-----------------+ | 1 | 0 | kategoria gł1 | | 2 | 0 | kategoria gł2 | | 3 | 0 | kategoria gł3 | | 4 | 1 | podkategoriaA | | 5 | 1 | podkategoriaB | +----+------+-----------------+ W takiej sytuacji nie wiem jak podpiąć podkategorie do kategorii głównych, to chyba bardziej się nadaje do metody wyświetlania która w danym momencie wyświetla tylko kategorie lub podkategorie w zależnosci od deep. Czy dobrze to rozumiem czy całkowicie poplątałem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%) ![]() ![]() |
Tabela
(auto)id | index | nazwa pliku | grupa | kategoria | |data pliku | data upload | data ...itd | Czesc danych generuje sie automatycznie przy wrzucaniu pliku - rozmiar, daty itp Podczas lub po wrzuceniu na serwer uzytkownik ustala przynaleznosc do kategorii i inne parametry. Jesli "obrazek" ma miec tez inne wlasciwosci opisowe a _zalezne_ od jego kategorii - dopiero wtedy mozesz myslec o kolejnej tabeli posiadajacej adekwatne wlasciwosciom kolumny. Majac juz 1 wpis np: 01 | ... | ... | grupa=natura | kategoria=kwiatki | .... zmiana kategorii to zmiana wpisu w polach, zadnego kopiowania, glebszych zmian itp, pliki zostaja w swoim miejscu. Oczywiscie w tym konkretnym przykladzie, poniewaz inna koncepcja, zakladajaca inny uklad chociazby na dysku - spowodowany jakimis specyficznymi operacjami na plikach - moze wymoc inne sposob realizacji operacji na bazie. Z kolei np. | nazwa pliku | po pierwsze powinna byc generowana nowa dla pliku pracujacego na serwerze np. dla ulatwienia operacji dyskowych lub bezpieczenstwa a nie pozostawiana taka jak oryginalu, jesli nazwa oryginalu potrzebna mozna ja trzymac ale jako ceche opisowa a nie jako wlasciwosc od ktorej cos zalezy. Same nazwy mozesz generowac dla ulatwienia tak: prefNAM1099439661527b897052c1a gdzie powstaje ci struktura dyskowa: KATALOG nazwa: prefNAM1099439661527b897052c1a . .. plik_duzy(np. oryginal).jpg plik_mini.jpg plik_sredni.jpg co powoduje, ze kasujac wpis w bazie dla danego obrazka kasujesz wszystkie dane dotyczace pliku, jakie masz na dysku jedna operacja, bez szukania i grzebania sie. Dodatkowo optymalizujesz dzialanie Apache, ktory nie ma katalogu zapelnionego setkami plikow a jedynie podkatalogi z plikami, wielokrotna oszczednosc listowania struktury: zamiast [1000] plikow obrazkow i kazdy ma np. 5 podplikow, masz [200] - katalogow i tam grzebiesz. Budowa nazwy przykladowego katalogu: prefNAM1099439661527b897052c1a pref -prefiks kategorii NAM -czesc oryginalnej nazwy obrazka 1099439661527b897052c1a - indywidualny tzw. hash czyli ID plikowy dla katalogu. Nie bede wyjasnial co i po co, bo pewnie sam sie domyslisz, ze moze ci sie to do czegos przydac, bo wcale nie musisz sie kurczowo trzymac kazdego posdunietego tu pomyslu. Dla mnie one pracuja bo mam okreslona koncepcje. Ciekawa zaleta to fakt, ze podajesz do kazdego obrazka link http://..............plik_duzy.jpg (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) bo wlasciwe skierowanie nadala _nazwa katalogu_, co rowniez pozwala na pewne interesujace sztuczki i ulatwienia. Jedno z nich to fakt, ze osoba nieswiadomie robi zapis 10 fotek ze strony, a zapisala sie jedna bo kazda ma te sama nazwe. Jesli faktycznie chcesz zabezpieczac to polaczysz ten trik z kilkoma innymi i nie da rady zapisac obrazka inaczej jak tylko przez PrintScreen. (ale to znowu za szeroki temat (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) no moze starczy na razie PS powyzsza struktura katalogu moze zawierac tez inne pliki zwiazane z obrazkiem np. zwiazane ze statystyka, dokumenty albo tez jakies elementy HTML itp. ale nie musi, tak samo jak nie musi byc w niej plikow miniatur i srednich bo jak masz superfast server to mozesz generowac np. dynamicznie miniatury albo pobierac je z z pliku poprzez EXIF itd itd. To temat na ladnych pare piw. Ten post edytował cbagov 20.05.2008, 13:10:02 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 17:27 |