ďťż

[php/mysql]Rozwiązanie galerii zdjeć problem teoretyczny

       

Podstrony


telcocafe

Witam

Zabieram sie do rozszeżenia mojej galerii zdjęć. Jak narazie opiera się na tym, że jest jeden folder i wszystko działa. Teraz jednakże chciałbym mieć tak, że moja galeria składa się z kilku mniejszych. Mam nadzieje, że wiecie o co chodzi :)
I teraz tak: jak to zrobić? Każda taka mała galeria powinna mieć swój oddzielny folder. Tak chyba bedzie najłatwiej moim zdaniem.
Jak przetrzymywac informację zdjęć w bazie danych? Każda galeria oddzielną tabele? Czy jedną wielką? Ale chyba lepiej żeby każda galeria miała swoją oddzielną tabele bo wtedy będzie wydajniejsze przeszukiwanie tabel.
Jeszcze jak zrobić usuwanie galerii jak mi się na przykład znudzi?

To chyba na początek wszystko takie podstawowe informację :) Więc będe wdzięczny za podzielenie się swoją wiedzą :)



no a może by tak do tabeli kategoria(o ile taką masz) dorobić pole folder, i tam bedzie zapisane w jakim folderze znajdują sie zdjęcia? A jak ci sie znudzi to normalnie usuwasz folder poleceniem rmdir (folder musi być pusty!)

loguś, a możesz dokładniej opisać jak to rozwiązać z tą tabelą kategoria bo takowej nie posiadam.
Byłbym wdzięczny

Hmmm...
Ja bym rozwiązał ten problem mniej-więcej tak:
tabela GALLERIES:
gallery_id | gallery_name | gallery_dir

tabela PHOTOS:
photo_id | gallery_id || photo_filename

I tak, dla każdej galerii tworzysz nowy folder (nazwa przetrzymywana w gallery_dir), a dla każdego nowo dodanego zdjęcia dajesz numer galerii (klucz obcy dla GALLERIES.gallery_id). Oczywiście równocześnie dodajesz nazwę pliku (photo_filename).

Natomiast skrypt otwiera zdjęcia na podstawie nazwy folderu + dodatkowo dodaje nazwę pliku (photo_filename).



ooo ciekawe rozwiązania...całkiem przemawia do mnie bo chyba łapie o co ci chodzi. rozwinąłbyś coś bardziej nawet na pm albo tu

Mam nadzieję, że pod słowem "rozwinąć" nie kryjesz "napisać". Bo nie wiem, co tu jest jeszcze do rozwinięcia... Pomysł raczej dobry i (myślę) dobrze zobrazowany przeze mnie. Czego nie rozumiesz w takim razie? :)

jak z nazewnictwem...bo chyba nie będzie problemy żeby istniało kilka zdjęc o tej samej nazwie skoro są różne foldery?

jak uzupełniac pole gallery_id? bo chyba musi mieć taką samą wartość?

to chyba na tyle...pewnie jutro się za to wezmę :)

gallery_id w tabeli GALLERIES ma być auto_increment. Natomiast w tabeli PHOTOS ma określać numer galerii dla danego zdjęcia (np. zdjęcie ze szkoły do galerii SZKOLA i identyfikatorze gallery_id = 2).
Problemu z nazwami nie będzie, nawet jeśli zdjęcia będą w tym samym katalogu. Po prostu będziesz miał wtedy, w tabeli PHOTOS, kilka odwołań (wierszy) do tego samego pliku :)

Ja bym to zrobil w ten sposob ze:

Zrobil bym maly plik php przez ktory bede dodawal te zdjecia tzn okienko w ktorym bede podawal sciezke do pliku oraz wybieral kategorie w jakiej ma sie znajdowac to zdjecie.

Tablea kategorie wygladala by tak
ID/ Kategoria/

Natomiat tabela ze zdjeciami

ID/Sciezka do zdjecia/ID pomocnicze/

No i wsio, wystarczy dopisac pare lini kodu ktora by to wszytko ogarnela i mamy dopasowane zdjecia do kategorii.

1. a czym jest to ID pomocnicze ?
2. jeśli chciałbym ułatwić życie sobie/użytkownikowi to wybór kategorii powinien być dostępny za pomocą listy rozwijanej (<select>) jak i skąd pobrać nazwy tam automatycznie?

Przecież Maalpa opisał praktycznie wszystko to, co ja. A tak w ogóle -> Maalpa, przecież nie wszyscy chcą tak zrobić (chodzi o ten plik), niektórzy wykorzystują potęgę MVC.

@autor: Ad 2: da się przy moim sposobie.
select gallery_name from GALLERIES
Użytkownik pbnan edytował ten post 07 marzec 2007, 18:31
dobra więc wziąłem się za to. Doszedłem do wniosku, że potrzebuje drobny moduł który będzie tworzył nową galerię w przypadku gdy żadnej nie będzie.
No, ale żeby nie było tak pięknie.... jak za pomocą php stworzyć nowy folder? Przejżałem funkcję obsługi katalogów i takowej tam nie ma.

Chce aby mój moduł wyglądał tak:
-koleś klika na "Dodaj galerię"
-wyświetla mu się okienko do wpisania nazwy
-koleś wpisuje sobie nazwę galerii
-wysyła to. Wszystko dodaje się w tabeli GALLERY i równocześnie stworzony zostaje katalog o takiej samej nazwie...
no i tu jest ten problem. Jak to rozwiązać?

//edit - poszukałem dogłębniej i wpadłem na funkcję mkdir...niestety nie mogę przebrnąć przez to i nie działa :/
Użytkownik Dawid-San edytował ten post 08 marzec 2007, 13:29

jak za pomocą php stworzyć nowy folder mkdir("nazwafolderu");

loguś przecież napisałem, że to już znalazłem :P

musze też dodawać miniatury i tu się zastanawiam nad dwoma rozwiązaniami:

w katalogu głównym stworzyć katalog MINIATURY a w nim podkatalogi galerii czy może w katalogu danej galerii stworzyć podkatalog miniatur?

a no i jeszcze jedno...z tego co wiem o kasowaniu katalogów to katalog musi być pierw pusty. To troche niewygodne jak się ma np. 100 fotek. Jak zrobić, żeby skasować katalog bez kasowania fotek poszczególnych? Jakaś pętla która pierw kasuje wszystkie zdjęcia a potem katalog? Dobrze myśle ?

Aby tworzyć katalogi musisz najpierw folderowi, do którego chcesz stworzyć folder ustawić CHMODy na 777 (jeśli działa na *NIXie - systemie pochodnym od UNIXa np. Linuks)
Dopiero wtedy możesz to zrobić.
Użytkownik JaCkObS edytował ten post 08 marzec 2007, 15:38
dobrze...ale ja nie o to się pytam :P

chodzi mi o sam proces kasowania...bo tworzyć już tworze :)

no, żeby skasować wszystkie zdjęcia najlpeiej zrobić tak:
$folder=dir("byleco"); while($nazwa=$folder->read()){ unlink($nazwa); }
a co do tego gdzie trzymać miniaturki to chyba lepiej w folderze MINIATURY

loguś a jaka jest wg. Ciebie różnica ?
bo mi właśnie na tej różnicy zależy bo jeśli nie ma żadnej to bez znaczenia przecież ;P

nie wiem jaka, ale jak ja pisałem podobny skrypt to robiłem właśnie w ten sposób, więc polecam

czy żeby usunąć folder to jego tworzenie musi wyglądać tak:
mkdir ($nazwa, 0700);
czy tak:
mkdir ($nazwa, 0777);
??

chyba tak: mkdir ($nazwa, 0777);


Hmmm...
Ja bym rozwiązał ten problem mniej-więcej tak:
tabela GALLERIES:
gallery_id | gallery_name | gallery_dir

tabela PHOTOS:
photo_id | gallery_id || photo_filename

I tak, dla każdej galerii tworzysz nowy folder (nazwa przetrzymywana w gallery_dir), a dla każdego nowo dodanego zdjęcia dajesz numer galerii (klucz obcy dla GALLERIES.gallery_id). Oczywiście równocześnie dodajesz nazwę pliku (photo_filename).

Natomiast skrypt otwiera zdjęcia na podstawie nazwy folderu + dodatkowo dodaje nazwę pliku (photo_filename).


Jeszcze jedno pytanie apropo tego. Zdjęcia i galerię dodaje niezależnie od siebie. Więc jak podczas dodawania zdjęcia uzupełnić pole gallery_id w tabeli PHOTOS ? Przecież nie mogę dać samego auto_increment. To pole musi się zgadzać z potem w GALLERIES. Więc w jaki sposób?

Po prostu masz taki interfejs użytkownika:
Dodaj zdjęcie: [_______________] [Przeglądaj]
Wybierz galerię dla zdjęcia: [_Galeria_Wakacje_]/\

I w skrypcie ustalasz tak: $gallery = $_POST['galeria'];

Taki przykład :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.