Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyświetlenie kilku zdjęć, tylu, ile się zmieści w określonej wysokości
KCG
post
Post #1





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Załóżmy, że mam wysokość 800px i chciałbym, aby wyświetliło się na niej tyle zdjęć, ile się zmieści, czyli np. 3 o wysokościach 300,200,300 lub 4 o wys. 200,200,300,100. Zdjęcia są różne, czyli np. na jednej stronie będą 3 zdjęcia, na drugiej może być 5.
Nazwy plików są pobierane z bazy.
Fragment, jak na razie mam, z tym, że tu na sztywno są ustawione 3 na stronę:
  1. <?php
  2. $sql = 'SELECT * FROM `e_images` WHERE `e_images_mid`='.$_GET['id'];
  3. $res = $mysql->query($sql);
  4. $pager = new pager($mysql->num_rows($res),3);
  5. $first = $pager->first();
  6. $shows = $pager->p_shows();
  7. $sql .= ' ORDER BY `e_images_kolejka` ASC LIMIT '.$first.','.$shows;
  8. $res = $mysql->query($sql);
  9. echo '<table id="enc_table">';
  10. while ($opis = $mysql->fetch_array($res)) {
  11. echo '<tr><td class="top" id="enc_podmodel_img">';
  12. echo '<a href="images/enc/'.$opis['e_images_image'].'.jpg" target="_blank"><img src="images/enc/'.$opis['e_images_image'].'t.jpg" title="Kliknij, aby powiększyć" alt="" /></a>';
  13. echo '</td><td class="top small">'.nl2br(stripslashes($opis['e_images_notka'])).'</td></tr>';
  14. }
  15. echo '</table>';
  16. $pager->links();
  17. ?>


pzdr

Może zobrazuje:
http://pytak.no-ip.org/~trudny/motocykl/en...ain=1&id=25
Tutaj powinny być 2 fotki, żeby strona po prostu się nie rozciągała.
A tu mogło by być jedno więcej:
http://pytak.no-ip.org/~trudny/motocykl/en...id=25&str=2


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Kihol
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 6
Dołączył: 20.06.2005
Skąd: Pyskowice

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


Najłatwiejszym rozwiązaniem byłoby trzymać w bazie poza nazwą zdjęcia jego wymiary - a przynajmniej wysokość (np pole height) i rozwiązanie byłoby wtedy następujące :
Wyciągasz z bazy więcej zdjęć niż potrzebujesz, w php sprawdzasz ile wejdzie :
  1. <?php
  2. $height=0;
  3. $pics=array();
  4. foreach ($records as $v) {
  5.  if ($height+$v['height'] <= 800) {
  6. $height+=$v['height']; //wielkość obrazka
  7. $pics[] = $v;  // dodaję kolejny obraz do arraya, żeby później wyświetlić
  8.  }
  9.  else
  10.  break;
  11. }
  12. ?>


w tablicy $pics masz kolejne obrazy, które wyświetlisz na danej stronie
sizeof($pics) będzie informacją ile obrazów na prawdę wyświetlasz i o tyle zwiększysz zmienną $first
Go to the top of the page
+Quote Post
KCG
post
Post #3





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Dzięki wielkie winksmiley.jpg Jednak wpadłem na coś podobnego. Tylko pojawia się problem z linkami.
Przekazuję 2 zmienne $first i $back (poprzednia strona). Z linkiem do następnej strony nie ma problemu. Do poprzedniej jako $first ustawiam aktualną $back, a nie wiem, co wstawić w $back w linku do poprzedniej strony.
  1. <?php
  2. echo '<a href="link.php?back=(?)&first='.$_GET['back'].'>poprzednia</a>';
  3. echo '<a href="link.php?back='.$first.'&first='.$next.'>poprzednia</a>';
  4. ?>


Jeszcze raz dzięki za odp; pzdr


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
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 Aktualny czas: 19.08.2025 - 16:29