Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie zdjęć z bazy danych
Mefiuu
post 3.09.2010, 16:44:19
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Witam. Mam problem. Otóż w panelu administratora dodałem możliwość dodawania zdjęć do galerii (lightbox). Po dodaniu można je obejrzeć na podstronie "galeria.php". Stworzyłem zapytanie pobierające dane z bazy i "ubierające" je w linki. Ogólnie chodzi o to, że mam div główny strony (na 900px) i chciałbym tam wyświetlić te zdjęcia, tj. miniaturka, a pod spodem tekst i tak do końca tego diva, a następne zdjęcia w nowej linii. Próbowałem upchnąć to w tabelkę, w <div class> ale coś nie pasuje. Jakie rozwiązanie byłoby dobre w tym wypadku? Chodzi mniej więcej o coś takiego:


|-----------|
|miniatura |
|________|
|opis, opis|
|opis, opis|
|opis, opis|
|opis, opis|
|________|


i tak następne koło siebie i następne aż do końca diva i później przenieść następne do nowej linii.

Dziękuję za pomysły.

Ten post edytował Mefiuu 3.09.2010, 16:47:50
Go to the top of the page
+Quote Post
Daiquiri
post 3.09.2010, 17:05:49
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Co Ci nie pasuje? Wrzuć swój kod (chociażby html + css). Zbuduj jednego DIV'a i wypełniaj nim powierzchnię np. poprzez pętle w PHP. Jeżeli dobrze ostylujesz pojedynczego DIV'a trzymającego obrazek i podpis, nowa linia "zrobi się sama" (tj. kolejny DIV się nie zmieści i wyświetli się poniżej).

<div id="DużyDIV900px">
for (wstaw tu swój warunek) {
wyświetlaj DIV z obrazkiem i podpisem
}
</div>
Go to the top of the page
+Quote Post
Mefiuu
post 3.09.2010, 17:11:04
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


  1. $galeria = mysql_query("SELECT * FROM galeria ORDER BY id DESC");
  2. if(mysql_num_rows($galeria) > 0) {
  3.  
  4. while($r = mysql_fetch_assoc($galeria)) {
  5. echo "<div class=\"zdjecia\"><div class=\"zdjecie\"><a href=\"images/big/".$r['big']."\" rel=\"lightbox[".$r['grupa']."]\"><img src=\"images/mini/".$r['mini']."\" alt=\"\" /></a></div><div class=\"opis\">".$r['opis']."</div></div>";
  6. }
  7.  
  8. }


Tym kodem to odbieram. Kod css:

  1. .zdjecia {
  2. padding-right: 15px;
  3. padding-bottom: 25px;
  4. margin-left: 8px;
  5. width: 100px;
  6. float: left;
  7. }
  8.  
  9. .zdjecie {
  10. width: 100px;
  11. }
  12.  
  13. .opis {
  14. width: 100px;
  15. background-color: green;
  16. }


No i wyświetla mi miniaturki i podpis, ale nie jest to wyrównane, jak chociażby w przypadku tabeli by było. Chodzi o to, żeby każda linijka była wyrównana w poziomie.
Go to the top of the page
+Quote Post
Daiquiri
post 3.09.2010, 17:19:27
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




No to pętlę wyświetlającą wszystkie fotki wsadź w obejmującego DIV'a np. kontener i nadaj mu szerokość - np. 900px. Same divy trzymające fotki nie mają wysokości to jak mają być równe? Jeżeli natomiast szukasz czegoś co wyrówna Ci długości mniejszych DIVów dynamicznie względem tego "najdłuższego" - zerknij tutaj.

Ten post edytował Daiquiri 3.09.2010, 17:22:50
Go to the top of the page
+Quote Post
Mefiuu
post 3.09.2010, 17:35:14
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


ok, zrobiłem jednak trochę inaczej i powiedzmy że efekt jest taki jak chciałem. Tylko nie wiem dlaczego przy tej pętli tło diva głównego wygląda jakby była zapisana 1 linia? Tzn. wyświetla mi zdjęcia w 2 rzędach, a div tylko kawałek jest w niebieskim kolorze, dalej jest biały.
Go to the top of the page
+Quote Post
Daiquiri
post 3.09.2010, 17:45:14
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Daj kod - dzisiaj nie wróżę z fusów smile.gif
Go to the top of the page
+Quote Post
Mefiuu
post 3.09.2010, 17:47:23
Post #7





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


  1. #content {
  2. width: 867px;
  3. height: auto;
  4. background-color: #068;
  5. padding: 15px;
  6. }


to jest div główny, zastosowany na wszystkich podstronach. Wszędzie jest ok, tylko w galerii wygląda jakby tekstu było jedną linię. Resztę kodu podałem wcześniej smile.gif
Go to the top of the page
+Quote Post
Daiquiri
post 3.09.2010, 17:58:41
Post #8





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




To przez to, że te elementy mają float. Jak na końcu dasz div o właściwości clear: both: powinno zadziałać. To pierwsze co mi przychodzi na myśl. Czyli:

<div id="content">
Twoje bloki z fotami
<div id="clear"></div>
</div>

gdzie w CSSie:

#clear {
clear: both;
}
Go to the top of the page
+Quote Post
Mefiuu
post 3.09.2010, 18:08:39
Post #9





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


rzeczywiście, jeśli usunę float to jest wszystko ok. Ale musi to być, bo one mają być jedno koło drugiego, a nie jedno pod drugim. A dodanie id="clear" i clear:both nic nie daje :/
Go to the top of the page
+Quote Post
Daiquiri
post 3.09.2010, 18:21:15
Post #10





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Ajj, jesteś pewien, że dodanie pod spodem DIV'a z parametrem clear: both nic nie daje? Bo jak ja sprawdzam to działa - pod Firefoksem i Safari smile.gif. Nie mam jak teraz zerknąć pod IE.
Go to the top of the page
+Quote Post
krzysztof_kf
post 3.09.2010, 18:45:18
Post #11





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


Jaki clear: both; ? dodaj selektorowi jakąś szerokość i do tego float: left; i display: inline;
Go to the top of the page
+Quote Post
Mefiuu
post 3.09.2010, 19:44:48
Post #12





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


dostawiłem do #content właściwości float: left i display: inline i zadziałało. Jest ok, obydwoje dostają pomógłsmile.gif Dzięki.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 4.06.2025 - 14:49