Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> galeria zdjęć - od czego zacząć
japolak
post
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 11.03.2007
Skąd: Łódzkie

Ostrzeżenie: (0%)
-----


Witam
mysle nad stworzeniem galerii w swoim serwisie

Założenia mam takie coś ala serwisy społecznościowe:
czyli każdy użytkownik sobie wrzuca swoje zdjęcia/ - zjęcia sa podpiete do jego profilu, czyli wchodząc w jego profil można obejrzeć dodane przez niego zdjęcia.

jak to rozwiązac od strony bazy danych i od systemu plików/

czy rozwiązanie dla systemu plików typu:
na serwerze mam katalog users/gallery/i np. folder z urzytkownikami od id 1-100, 101 - 200, itd / nastepnie folder z konkretnym id uzytkownika i tam dopiero jego zdjęcia,

a od strony myslq
tabela gallery gdzie byloby id_użyt, nazwa_zdjęcia, lokalizacja

czy może macie lepsze rozwiazanie dla tego typu problemu??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
japolak
post
Post #2





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 11.03.2007
Skąd: Łódzkie

Ostrzeżenie: (0%)
-----


hej
kolejne pytanie co do tematu:)

a konkretnie albumu

aktualnie tak wyglada poziom rozwoju mojej galerii:

  1. CREATE TABLE IF NOT EXISTS `user_album` (
  2. `id_user` int(10) UNSIGNED NOT NULL,
  3. `album_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  4. `album_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
  5. `album_desc` text COLLATE utf8_polish_ci NOT NULL,
  6. `album_thumb` int(10) UNSIGNED NOT NULL,
  7. `album_access` int(2) UNSIGNED NOT NULL,
  8. `add_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  9. PRIMARY KEY (`album_id`,`id_user`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;


  1. CREATE TABLE IF NOT EXISTS `user_photo` (
  2. `photo_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_user` int(10) UNSIGNED NOT NULL,
  4. `album_id` int(10) UNSIGNED NOT NULL,
  5. `id_cat` int(10) UNSIGNED NOT NULL,
  6. `file_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
  7. `photo_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
  8. `photo_desc` text COLLATE utf8_polish_ci NOT NULL,
  9. `add_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  10. `counter` int(10) UNSIGNED NOT NULL,
  11. PRIMARY KEY (`photo_id`)
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;


i teraz tak sie zastanawiam..
założenie mam takie że użytkownik bez wcześniejszego ręcznego tworzenia gallerii moze odrazu wgrywać sobie zdjęcia.
a te zdjęcia wtedy będą wyświetlane jako że są w głównej gallerii ..

i mam dylemat taki czy tą główna (domyśla) galerie rejestrować w bazie zaraz przy rejestracji użytkownika .
czy wogóle jej nie wykazywać. - a poźniej w wynikach zdjęcia które nie sa przypisane do żadnej z gallerii bedą wrzócane zapytaniem do tej głównej.
-- tylko nie wiem czy w ten sposób nie narobie sobie zbyt dużo roboty..

słucham waszych opinii.


temat juz nie aktualny..

w sumie sam się rozwiązał(IMG:style_emoticons/default/smile.gif)

album główny ma zawsze wartość '0'
wiec obyło sie bez większych kombinacji ..

pobieranie danych z bazy: klasa danych;
  1. public function get_photo_album($user,$album_id){
  2.  
  3. $sql="select * from user_photo where id_user ='".$user."' and album_id='".$album_id."'order by add_date_photo desc";
  4. $connect=$this->connect_bd();
  5. $result=$connect->query($sql);
  6. if (!$result){echo "blad w get photo album"; return false;}
  7. if ($result->num_rows>0)
  8. {
  9. $result=$this->result_bd_to_table($result);
  10. return $result;
  11. }
  12. }


ta funkcja działa dla każdej możliwości.


a wywoływana przez:
formatowanie wyników z bazy - klasa formatowania:
  1.  
  2. public function display_user_album($table_albums){
  3.  
  4.  
  5. if (!is_array($table_albums)) {
  6. echo "<li> Brak dostępnych kategorii </li>";
  7. return;
  8.  
  9.  
  10. }
  11. foreach ($table_albums as $row) {
  12.  
  13. ?><div class="product-photo">
  14. <p>
  15. <?php
  16. if($row['album_thumb']=='null'){echo "cos pokrecilem";}else{
  17. ?>
  18. <a href='../users/gallery.php?album=<?php echo $row['album_id'];?>'><img src='../themes/new/albums_def.png' width='100' height='100' ><br><?php echo $row['album_name'];?></a>
  19. <?php
  20.  
  21. }
  22. ?>
  23. </p>
  24. </div><?php
  25. }
  26.  
  27. //wyswietlanie linku od galerii glownej
  28. ?><div class="product-photo">
  29. <p>
  30. <a href='../users/gallery.php?album=0'><img src='../themes/new/albums_def.png' width='100' height='100' ><br>Album główny</a>
  31. </p>
  32.  
  33. </div><?php
  34.  
  35. }


zawsze wyświetla prawidłowe wartości.

plik docelowy : gallery.php ktory wyświetla zawartosc w zaleznosci od wyboru galerii
  1. class change extends user_view{
  2.  
  3.  
  4. public function display_contents (){
  5.  
  6. $get_user=new data_user();
  7. $user_real_id=$get_user->get_user_real_id($_SESSION['login']);
  8. $album_id=$_GET['album'];
  9. $get=new data_user();
  10. $table_photo=$get->get_photo_album($user_real_id['id'],$album_id);
  11.  
  12. ?><div id="contentuser"><div class="title">Album:</div><div class="post"><div class="entry">
  13. <?php
  14.  
  15.  
  16.  
  17. $show=new user_view();
  18. $show->display_photo_album($table_photo);
  19. ?>
  20.  
  21.  
  22. </div>
  23. </div></div>
  24. <?php
  25.  
  26. //zamyka display contents
  27. }
  28. //zamyka klase
  29. }
  30.  



a tak out of topic:
czy takie pisanie kodu jak ja.. jest ok.. czy to raczej sieczka? wg. was?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 12:38